remote-party-finder/server/src/test.rs

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(),
);
}