private SimpleListingViewModel CreateGemItemListingViewModel(ListingResult listingResult) { var result = new GemItemListingViewModel { Level = GetPropertyStringValue(listingResult.Item, GemLevelPropertyName), Quality = GetPropertyStringValue(listingResult.Item, QualityPropertyName) }; var gemExperienceProperty = listingResult.Item.AdditionalProperties?.FirstOrDefault(p => p.Name == GemExperiencePropertyName); if (gemExperienceProperty != null) { result.GemExperiencePercent = Math.Round(gemExperienceProperty.Progress * 100, 2, MidpointRounding.AwayFromZero); } else { result.GemExperiencePercent = 0.00m; //otherwise these rows will show 0 instead of 0.00 } return(result); }
public async Task CreateShouldReturnGemItemListingViewModelForGemItem() { decimal experience = 0.25m; string gemLevel = "15"; string quality = "+13%"; string propertiesJson = $@"[{{""name"":""Level"",""values"":[[""{gemLevel}"",0]],""displayMode"":0,""type"":5}},{{""name"":""Quality"",""values"":[[""{quality}"",1]],""displayMode"":0,""type"":6}}]"; string additionalPropertiesJson = @"[{""name"":""Experience"",""values"":[[""1/15249"",0]],""displayMode"":2,""progress"":0.25,""type"":20}]"; ListingResult listingResult = GetListingResult(); listingResult.Item.Properties = GetPropertiesList(propertiesJson); listingResult.Item.AdditionalProperties = GetPropertiesList(additionalPropertiesJson); Item item = new GemItem(); GemItemListingViewModel result = await this.listingViewModelFactory.CreateAsync(listingResult, item) as GemItemListingViewModel; Assert.NotNull(result); AssertSimpleListingViewModelProperties(result, listingResult); Assert.That(result.GemExperiencePercent, Is.EqualTo(experience * 100)); Assert.That(result.Level, Is.EqualTo(gemLevel)); Assert.That(result.Quality, Is.EqualTo(quality)); }