コード例 #1
0
        public void CreateShouldMapEnabledStatFilterToQueryStatFilter()
        {
            MinMaxStatFilterViewModel statFilterViewModel = new MinMaxStatFilterViewModel
            {
                Id        = "itemStatId",
                Text      = "# to Maximum Life",
                Min       = 50,
                Max       = 65,
                IsEnabled = true
            };
            var advancedFiltersViewModel = GetAdvancedFiltersViewModel(new[] { statFilterViewModel }, null);
            SearchQueryRequest result    = this.queryRequestFactory.Create(new SearchQueryRequest(), advancedFiltersViewModel) as SearchQueryRequest;

            Assert.NotNull(result);

            Assert.That(result.Query.Stats, Has.Count.EqualTo(1));
            StatFilters statFilters = result.Query.Stats.First();

            Assert.That(statFilters.Filters, Has.Count.EqualTo(1));
            StatFilter statFilter = statFilters.Filters.First();

            Assert.That(statFilter.Id, Is.EqualTo(statFilterViewModel.Id));
            Assert.That(statFilter.Text, Is.EqualTo(statFilterViewModel.Text));
            Assert.NotNull(statFilter.Value);
            Assert.That(statFilter.Value.Min, Is.EqualTo(statFilterViewModel.Min));
            Assert.That(statFilter.Value.Max, Is.EqualTo(statFilterViewModel.Max));
        }
コード例 #2
0
        public void CreateShouldClearStatsOnQueryRequestBeforeAddingNewOnes()
        {
            var statFilterViewModel = new MinMaxStatFilterViewModel
            {
                Id        = "itemStatId",
                Text      = "# to Maximum Life",
                Min       = 50,
                Max       = 65,
                IsEnabled = true
            };
            var advancedFiltersViewModel = GetAdvancedFiltersViewModel(new[] { statFilterViewModel }, null);

            var searchQueryRequest = new SearchQueryRequest
            {
                Query =
                {
                    Stats           =
                    {
                        new StatFilters
                        {
                            Filters =
                            {
                                new StatFilter()
                            }
                        }
                    }
                }
            };

            SearchQueryRequest result = this.queryRequestFactory.Create(searchQueryRequest, advancedFiltersViewModel) as SearchQueryRequest;

            Assert.NotNull(result);
            Assert.That(result.Query.Stats, Has.Count.EqualTo(1));
            Assert.That(result.Query.Stats.First().Filters, Has.Count.EqualTo(1));
        }
コード例 #3
0
        public void CreateShouldReturnStatFilterViewModelWithCurrentValueForSingleValueItemStat(decimal value, string expected)
        {
            var itemStat = new SingleValueItemStat(StatCategory.Explicit)
            {
                Value = value
            };

            MinMaxStatFilterViewModel result = this.statFilterViewModelFactory.Create(itemStat, new SearchQueryRequest()) as MinMaxStatFilterViewModel;

            Assert.NotNull(result);
            Assert.That(result.Current, Is.EqualTo(expected));
        }
コード例 #4
0
        public void CreateShouldMapValueOfSingleValueItemStatToMinValue()
        {
            const int expected = 2;
            var       itemStat = new SingleValueItemStat(StatCategory.Monster)
            {
                Value = expected
            };

            MinMaxStatFilterViewModel result = this.statFilterViewModelFactory.Create(itemStat, new SearchQueryRequest()) as MinMaxStatFilterViewModel;

            Assert.That(result.Min, Is.EqualTo(expected));
        }
コード例 #5
0
        private void CreateShouldConsiderMaxValuePercentageOffsetForItemStat(ItemStat itemStat, decimal percentageOffset, decimal expected)
        {
            this.itemSearchOptionsMock.Setup(x => x.CurrentValue)
            .Returns(new ItemSearchOptions
            {
                AdvancedQueryOptions = new AdvancedQueryOptions
                {
                    MinValuePercentageOffset = 0,
                    MaxValuePercentageOffset = percentageOffset
                }
            });

            MinMaxStatFilterViewModel result = this.statFilterViewModelFactory.Create(itemStat, new SearchQueryRequest()) as MinMaxStatFilterViewModel;

            Assert.NotNull(result);
            Assert.That(result.Max, Is.EqualTo(expected));
        }
コード例 #6
0
        private void CreateShouldTakeMinValueFromQueryRequest(ItemStat itemStat, decimal?expected)
        {
            this.itemSearchOptionsMock.Setup(x => x.CurrentValue)
            .Returns(new ItemSearchOptions
            {
                AdvancedQueryOptions = new AdvancedQueryOptions
                {
                    MinValuePercentageOffset = -0.1m
                }
            });

            itemStat.Id = "item stat id";
            SearchQueryRequest queryRequest = GetQueryRequestWithStatFilter(itemStat.Id, new MinMaxFilter {
                Min = expected
            });
            MinMaxStatFilterViewModel result = this.statFilterViewModelFactory.Create(itemStat, queryRequest) as MinMaxStatFilterViewModel;

            Assert.That(result.Min, Is.EqualTo(expected));
        }
コード例 #7
0
        public async Task LoadAsyncShouldSetStatFilterViewModels(StatCategory statCategory, GetFilterViewModels getFilterViewModelsDelegate)
        {
            ItemWithStats item      = CreateItemWithStats(statCategory);
            var           expected1 = new MinMaxStatFilterViewModel {
                Id = item.Stats.AllStats[0].Id
            };
            var expected2 = new MinMaxStatFilterViewModel {
                Id = item.Stats.AllStats[1].Id
            };

            this.statFilterViewModelFactoryMock.SetupSequence(x => x.Create(It.IsAny <ItemStat>(), It.IsAny <SearchQueryRequest>()))
            .Returns(expected1)
            .Returns(expected2);

            await this.advancedFiltersViewModel.LoadAsync(item, new SearchQueryRequest(), default);

            var filterViewModels = getFilterViewModelsDelegate(this.advancedFiltersViewModel);

            Assert.That(filterViewModels, Has.Count.EqualTo(2));

            Assert.That(filterViewModels[0], Is.EqualTo(expected1));
            Assert.That(filterViewModels[1], Is.EqualTo(expected2));
        }
コード例 #8
0
        public void CreateShouldIgnoreConfigurationForMonsterItemStat()
        {
            const int expected = 3;
            var       itemStat = new SingleValueItemStat(StatCategory.Monster)
            {
                Id = "monsterItemStat", Value = expected
            };

            this.itemSearchOptionsMock.Setup(x => x.CurrentValue)
            .Returns(new ItemSearchOptions
            {
                AdvancedQueryOptions = new AdvancedQueryOptions
                {
                    MinValuePercentageOffset = -0.1m,
                    MaxValuePercentageOffset = 0.1m
                }
            });

            MinMaxStatFilterViewModel result = this.statFilterViewModelFactory.Create(itemStat, new SearchQueryRequest()) as MinMaxStatFilterViewModel;

            Assert.That(result.Min, Is.EqualTo(expected));
            Assert.That(result.Max, Is.EqualTo(expected));
        }
コード例 #9
0
        public void CreateShouldSetGreaterValueAsMaxValueForStatFilter()
        {
            const int expectedValue       = 65;
            var       statFilterViewModel = new MinMaxStatFilterViewModel
            {
                Min       = expectedValue,
                Max       = 40,
                IsEnabled = true
            };
            var advancedFiltersViewModel = GetAdvancedFiltersViewModel(new[] { statFilterViewModel }, null);

            SearchQueryRequest result = this.queryRequestFactory.Create(new SearchQueryRequest(), advancedFiltersViewModel) as SearchQueryRequest;

            Assert.NotNull(result);

            Assert.That(result.Query.Stats, Has.Count.EqualTo(1));
            StatFilters statFilters = result.Query.Stats.First();

            Assert.That(statFilters.Filters, Has.Count.EqualTo(1));
            StatFilter statFilter = statFilters.Filters.First();

            Assert.That(statFilter.Value.Min, Is.EqualTo(expectedValue));
            Assert.That(statFilter.Value.Max, Is.EqualTo(expectedValue));
        }