コード例 #1
0
        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;
                }
            });
        }
コード例 #2
0
 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);
 }
     );
コード例 #3
0
    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);
        }
    }