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""}}"); }
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); }
public ItemVariant(ItemVariantId id, ItemVariantName name) { this.Id = id; this.Name = name; }