public async Task VariantItem()
        {
            var mock = SetupGetSheetService(new List <IList <object> >
            {
                new List <object> {
                    "Internal ID", "Name", "Catalog", "Source", "Image", "Variant ID", "Variation"
                },
                new List <object> {
                    "3821", "air circulator", "For sale", "Nook's Cranny", @"=IMAGE(""https://acnhcdn.com/latest/FtrIcon/FtrCirculator_Remake_2_0.png"")", "2_0", "Pink"
                },
            });
            var service = new CommunitySheetIngestService(new List <IGetSheetService> {
                mock.Object
            });

            var actual = await service.Ingest();

            actual.Should().HaveCount(1);
            actual.Should().Contain(new Item(
                                        ItemId.From("3821"),
                                        ItemName.From("air circulator"),
                                        CatalogueStatus.FOR_SALE,
                                        Source.NOOKS_CRANNY,
                                        Image.From("https://acnhcdn.com/latest/FtrIcon/FtrCirculator_Remake_2_0.png"),
                                        new ItemVariant(
                                            ItemVariantId.From("2_0"),
                                            ItemVariantName.From("Pink")
                                            )
                                        ));
        }
        public void Serialize()
        {
            var actual = JsonSerializer.Serialize(new Item(
                                                      ItemId.From("383"),
                                                      ItemName.From("acoustic guitar"),
                                                      CatalogueStatus.NOT_FOR_SALE,
                                                      Source.CRAFTING,
                                                      Image.From("https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"),
                                                      new ItemVariant(
                                                          ItemVariantId.From("0_0"),
                                                          ItemVariantName.From("Natural")
                                                          )
                                                      ));

            actual.Should().Be(@"{""id"":""383"",""name"":""acoustic guitar"",""catalogueStatus"":1,""source"":1,""image"":""https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"",""variant"":{""id"":""0_0"",""name"":""Natural""}}");
        }
예제 #3
0
        private ItemVariant?GetVariant(IDictionary <string, Object> row)
        {
            var variantId = row
                            .ToDictionary(_ => _.Key, _ => _.Value)
                            .GetValueOrDefault("Variant ID", null);

            if (variantId == null)
            {
                return(null);
            }

            if (variantId.ToString() == "NA")
            {
                return(null);
            }

            return(new ItemVariant(
                       ItemVariantId.From(variantId.ToString()),
                       ItemVariantName.From(row["Variation"].ToString())
                       ));
        }
        public void ItemWithVariant()
        {
            var item = new Item(
                ItemId.From("1"),
                ItemName.From("acoustic guitar"),
                CatalogueStatus.NOT_FOR_SALE,
                Source.CRAFTING,
                Image.From("https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"),
                new ItemVariant(
                    ItemVariantId.From("1_0"),
                    ItemVariantName.From("Natural")
                    )
                );
            var items = new List <Item> {
                item
            };
            var service = new InMemoryItemService(items);

            var actual = service.Get(item.Id, item.Variant?.Id);

            actual.Should().Be(item);
        }
        public void ItemNotExists()
        {
            var item = new Item(
                ItemId.From("1"),
                ItemName.From("acoustic guitar"),
                CatalogueStatus.NOT_FOR_SALE,
                Source.CRAFTING,
                Image.From("https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"),
                new ItemVariant(
                    ItemVariantId.From("1_0"),
                    ItemVariantName.From("Natural")
                    )
                );
            var items = new List <Item> {
                item
            };
            var service = new InMemoryItemService(items);


            FluentActions
            .Invoking(() => service.Get(ItemId.From("1234"), null))
            .Should().Throw <InvalidOperationException>();
        }
        public void ItemWithVariants()
        {
            var item1 = new Item(
                ItemId.From("1"),
                ItemName.From("acoustic guitar"),
                CatalogueStatus.NOT_FOR_SALE,
                Source.CRAFTING,
                Image.From("https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"),
                new ItemVariant(
                    ItemVariantId.From("0_0"),
                    ItemVariantName.From("Natural")
                    )
                );
            var item2 = new Item(
                ItemId.From("1"),
                ItemName.From("acoustic guitar"),
                CatalogueStatus.NOT_FOR_SALE,
                Source.CRAFTING,
                Image.From("https://acnhcdn.com/latest/FtrIcon/FtrAcorsticguitar_Remake_0_0.png"),
                new ItemVariant(
                    ItemVariantId.From("1_0"),
                    ItemVariantName.From("Natural")
                    )
                );
            var items = new List <Item> {
                item1,
                item2
            };
            var service = new InMemoryItemService(items);

            var actual = service.GroupByVariants();

            actual.Should().ContainKeys(item1.Id);
            actual[item1.Id].Should().HaveCount(2);
            actual[item1.Id][0].Id.Should().Be(item1.Id);
            actual[item1.Id][0].Id.Should().Be(item2.Id);
        }
예제 #7
0
 public ItemVariant(ItemVariantId id, ItemVariantName name)
 {
     this.Id   = id;
     this.Name = name;
 }