public void Items_can_be_created_from_json() { var settings = new JsonSerializerSettingsBuilder() .UseTraceWriter(new XunitTraceWriter(_output)) .UseMissingMemberHandling(MissingMemberHandling.Error) .Build(); AssertEx.ForEach(_fixture.Db.Items, json => { var actual = JsonConvert.DeserializeObject <Item>(json, settings); ItemFacts.Id_is_positive(actual); ItemFacts.Vendor_value_cannot_be_negative(actual); switch (actual) { case Consumable consumable: ItemFacts.Consumable_level_is_between_0_and_80(consumable); switch (consumable) { case Transmutation transmutation: ItemFacts.Transmutation_skins_cannot_be_empty(transmutation); break; } break; case Weapon weapon: ItemFacts.Weapon_level_is_between_0_and_80(weapon); ItemFacts.Weapon_min_power_cannot_be_negative(weapon); ItemFacts.Weapon_max_power_cannot_be_negative(weapon); ItemFacts.Weapon_defense_cannot_be_negative(weapon); ItemFacts.Weapon_infix_upgrade_id_is_positive(weapon); ItemFacts.Weapon_infix_upgrade_modifiers_are_positive(weapon); break; case BackItem backItem: ItemFacts.Back_item_level_is_between_0_and_80(backItem); ItemFacts.Back_item_infix_upgrade_id_is_positive(backItem); ItemFacts.Back_item_infix_upgrade_modifiers_are_positive(backItem); ItemFacts.Back_item_suffix_item_id_is_null_or_positive(backItem); break; case Armor armor: ItemFacts.Armor_level_is_between_0_and_80(armor); ItemFacts.Armor_defense_cannot_be_negative(armor); ItemFacts.Armor_infix_upgrade_id_is_positive(armor); ItemFacts.Armor_infix_upgrade_modifiers_are_positive(armor); ItemFacts.Armor_suffix_item_id_is_null_or_positive(armor); ItemFacts.Armor_stat_choices_are_null_or_not_empty(armor); break; case Trophy trophy: ItemFacts.Trophy_level_is_between_0_and_80(trophy); break; } }); }
public void Items_can_be_created_from_json() => Assert.All( fixture.Items, json => { using var document = JsonDocument.Parse(json); var actual = document.RootElement.GetItem(MissingMemberBehavior.Error); ItemFacts.Validate(actual); } );
public async Task Items_can_be_enumerated() { await using Composer services = new(); var sut = services.Resolve <Gw2Client>(); await foreach (var actual in sut.Items.GetItems()) { ItemFacts.Validate(actual); } }