90 lines
2.2 KiB
Rust
90 lines
2.2 KiB
Rust
use crate::listing::{PartyFinderListing, DutyType, ObjectiveFlags, ConditionFlags, DutyFinderSettingsFlags, LootRuleFlags, SearchAreaFlags, DutyCategory, PartyFinderSlot, JobFlags};
|
|
use sestring::SeString;
|
|
|
|
const LISTING: &str = r###"
|
|
{
|
|
"id": 123,
|
|
"content_id_lower": 456,
|
|
"name": "VGVzdCBOYW1l",
|
|
"description": "VGhpcyBpcyBteSB0ZXN0IGRlc2NyaXB0aW9uLg==",
|
|
"created_world": 73,
|
|
"home_world": 73,
|
|
"current_world": 73,
|
|
"category": 0,
|
|
"duty": 55,
|
|
"duty_type": 2,
|
|
"beginners_welcome": false,
|
|
"seconds_remaining": 3300,
|
|
"min_item_level": 0,
|
|
"num_parties": 1,
|
|
"slots_available": 7,
|
|
"objective": 3,
|
|
"conditions": 1,
|
|
"duty_finder_settings": 0,
|
|
"loot_rules": 0,
|
|
"search_area": 1,
|
|
"slots": [
|
|
{
|
|
"accepting": 167772160
|
|
}
|
|
],
|
|
"jobs_present": [
|
|
5,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
]
|
|
}"###;
|
|
|
|
lazy_static::lazy_static! {
|
|
static ref EXPECTED: PartyFinderListing = PartyFinderListing {
|
|
id: 123,
|
|
content_id_lower: 456,
|
|
name: SeString::parse(b"Test Name").unwrap(),
|
|
description: SeString::parse(b"This is my test description.").unwrap(),
|
|
created_world: 73,
|
|
home_world: 73,
|
|
current_world: 73,
|
|
category: DutyCategory::Duty,
|
|
duty: 55,
|
|
duty_type: DutyType::Normal,
|
|
beginners_welcome: false,
|
|
seconds_remaining: 3300,
|
|
min_item_level: 0,
|
|
num_parties: 1,
|
|
slots_available: 7,
|
|
objective: ObjectiveFlags::PRACTICE | ObjectiveFlags::DUTY_COMPLETION,
|
|
conditions: ConditionFlags::NONE,
|
|
duty_finder_settings: DutyFinderSettingsFlags::NONE,
|
|
loot_rules: LootRuleFlags::NONE,
|
|
search_area: SearchAreaFlags::DATA_CENTRE,
|
|
slots: vec![
|
|
PartyFinderSlot {
|
|
accepting: JobFlags::DANCER | JobFlags::BLUE_MAGE,
|
|
},
|
|
],
|
|
jobs_present: vec![5, 0, 0, 0, 0, 0, 0, 0],
|
|
};
|
|
}
|
|
|
|
#[test]
|
|
fn deserialise_listing() {
|
|
let listing: PartyFinderListing = serde_json::from_str(LISTING).unwrap();
|
|
assert_eq!(
|
|
listing,
|
|
*EXPECTED,
|
|
)
|
|
}
|
|
|
|
#[test]
|
|
fn serialise_listing() {
|
|
assert_eq!(
|
|
serde_json::to_string_pretty(&*EXPECTED).unwrap(),
|
|
LISTING.trim(),
|
|
);
|
|
}
|