Exemplo n.º 1
0
        public void GenerateOnlyEpicItems()
        {
            result.Type   = string.Empty;
            result.Amount = 0;

            var range = new RangeAttributesResult {
                Maximum = 600, Minimum = 600
            };

            mockRangeAttributesSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.EpicItems, "9266")).Returns(range);

            var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, PowerConstants.Major);

            mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns("epic");

            var epicMagicalMock = new Mock <MagicalItemGenerator>();

            epicMagicalMock.Setup(m => m.GenerateAtPower(It.IsAny <string>())).Returns(() => new Item {
                Name = "epic item"
            });
            mockMagicalItemGeneratorFactory.Setup(f => f.CreateGeneratorOf("epic")).Returns(epicMagicalMock.Object);

            var items = itemsGenerator.GenerateAtLevel(9266);

            Assert.That(items.Count(), Is.EqualTo(600));
            Assert.That(items.Count(i => i.Name == "epic item"), Is.EqualTo(600));
            Assert.That(items, Is.Unique);
        }
Exemplo n.º 2
0
        public void GetMinAndMaxForNamedItemsFromAttributesSelector()
        {
            var result = new RangeAttributesResult();

            result.Maximum = 92;
            result.Minimum = 66;

            mockRangeAttributesSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ChargeLimits, "name")).Returns(result);
            SetUpRoll(27, 9266);

            var charges = generator.GenerateFor(string.Empty, "name");

            Assert.That(charges, Is.EqualTo(9331));
        }
Exemplo n.º 3
0
        public RangeAttributesResult SelectFrom(string tableName, string name)
        {
            var attributes = innerSelector.SelectFrom(tableName, name);

            if (attributes.Count() < 2)
            {
                throw new Exception("Attributes are not in format for range");
            }

            var minimum = attributes.First();
            var maximum = attributes.Last();

            var result = new RangeAttributesResult();

            result.Minimum = Convert.ToInt32(minimum);
            result.Maximum = Convert.ToInt32(maximum);

            return(result);
        }
Exemplo n.º 4
0
        public void Setup()
        {
            result = new TypeAndAmountPercentileResult();
            mockMundaneItemGeneratorFactory     = new Mock <IMundaneItemGeneratorRuntimeFactory>();
            mockPercentileSelector              = new Mock <IPercentileSelector>();
            mockMagicalItemGenerator            = new Mock <MagicalItemGenerator>();
            mockMagicalItemGeneratorFactory     = new Mock <IMagicalItemGeneratorRuntimeFactory>();
            mockTypeAndAmountPercentileSelector = new Mock <ITypeAndAmountPercentileSelector>();
            mockMundaneItemGenerator            = new Mock <MundaneItemGenerator>();
            mockRangeAttributesSelector         = new Mock <IRangeAttributesSelector>();

            itemsGenerator = new ItemsGenerator(mockTypeAndAmountPercentileSelector.Object, mockMundaneItemGeneratorFactory.Object, mockPercentileSelector.Object, mockMagicalItemGeneratorFactory.Object, mockRangeAttributesSelector.Object);

            result.Type   = "power";
            result.Amount = 42;
            mockTypeAndAmountPercentileSelector.Setup(p => p.SelectFrom(It.IsAny <string>())).Returns(result);
            mockPercentileSelector.Setup(p => p.SelectFrom(It.IsAny <string>())).Returns(ItemTypeConstants.WondrousItem);

            var dummyMagicalMock = new Mock <MagicalItemGenerator>();

            dummyMagicalMock.Setup(m => m.GenerateAtPower(It.IsAny <string>())).Returns(() => new Item {
                Name = "magical item"
            });
            mockMagicalItemGeneratorFactory.Setup(f => f.CreateGeneratorOf(It.IsAny <string>())).Returns(dummyMagicalMock.Object);

            var dummyMundaneMock = new Mock <MundaneItemGenerator>();

            dummyMundaneMock.Setup(m => m.Generate()).Returns(() => new Item {
                Name = "mundane item"
            });
            mockMundaneItemGeneratorFactory.Setup(f => f.CreateGeneratorOf(It.IsAny <string>())).Returns(dummyMundaneMock.Object);

            var range = new RangeAttributesResult {
                Maximum = 0, Minimum = 0
            };

            mockRangeAttributesSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.EpicItems, It.IsAny <string>())).Returns(range);
        }
Exemplo n.º 5
0
        public void GeneratePartiallyFullDeckOfIllusions()
        {
            var result = new RangeAttributesResult();

            result.Maximum = 92;
            result.Minimum = 66;
            var fullResult = new RangeAttributesResult();

            fullResult.Maximum = 34;
            fullResult.Minimum = 34;

            mockRangeAttributesSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ChargeLimits, WondrousItemConstants.DeckOfIllusions)).Returns(result);
            mockRangeAttributesSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ChargeLimits, WondrousItemConstants.FullDeckOfIllusions)).Returns(fullResult);

            SetUpRoll(27, 9266);
            SetUpRoll(1, 1);

            mockBooleanPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IsDeckOfIllusionsFullyCharged)).Returns(false);

            var charges = generator.GenerateFor(string.Empty, WondrousItemConstants.DeckOfIllusions);

            Assert.That(charges, Is.EqualTo(9331));
        }