コード例 #1
0
        protected BaseValid()
        {
            var effect = new Mock <IAlchemyEffect>();

            effect
            .Setup(x => x.Description)
            .Returns(Description);

            var potion = new Mock <IPotion>();

            potion
            .Setup(x => x.Name)
            .Returns(Name);
            potion
            .Setup(x => x.Cost)
            .Returns(Cost);
            potion
            .Setup(x => x.Effects)
            .Returns(new[] { effect.Object });

            var validatedPotionBuilder = new Mock <IValidatedPotionBuilder>();

            validatedPotionBuilder
            .Setup(x => x.Build())
            .Returns(potion.Object);

            PotionBuilder
            .Setup(x => x.Validate())
            .Returns(validatedPotionBuilder.Object);
        }
コード例 #2
0
        public void HasValidAlchemistPerk(int alchemistRank)
        {
            Request.AlchemistPerkRank = alchemistRank;
            TestAndAssert();

            PotionBuilder.Verify(x => x.Perk(It.Is <AlchemistPerk>(y => y.Rank == alchemistRank)), Times.Once);
        }
コード例 #3
0
        protected Base()
        {
            var potionBuilderFactory = new Mock <IPotionBuilderFactory>();

            potionBuilderFactory
            .Setup(x => x.Create())
            .Returns(PotionBuilder.Object);

            PotionBuilder
            .Setup(x => x.AlchemyLevel(It.IsAny <int>()))
            .Returns(PotionBuilder.Object)
            .Verifiable();

            PotionBuilder
            .Setup(x => x.FortifyAlchemyPercent(It.IsAny <decimal>()))
            .Returns(PotionBuilder.Object)
            .Verifiable();

            PotionBuilder
            .Setup(x => x.Ingredient(It.IsAny <IIngredient>()))
            .Returns(PotionBuilder.Object)
            .Verifiable();

            PotionBuilder
            .Setup(x => x.Perk(It.IsAny <IPerk <AlchemySkill> >()))
            .Returns(PotionBuilder.Object)
            .Verifiable();

            Subject = new PotionCreate.CommandHandler(potionBuilderFactory.Object);
        }
コード例 #4
0
        public void HasInvalidAlchemistPerk()
        {
            Request.AlchemistPerkRank = 0;
            TestAndAssert();

            PotionBuilder.Verify(x => x.Perk(It.IsAny <AlchemistPerk>()), Times.Never);
        }
コード例 #5
0
        public void HasPoisonerPerk()
        {
            Request.HasPoisonerPerk = true;
            TestAndAssert();

            PotionBuilder.Verify(x => x.Perk(It.IsAny <PoisonerPerk>()), Times.Once);
        }
コード例 #6
0
        public void VariousFortifyAlchemyPercent(decimal fortifyAlchemyPercent)
        {
            Request.FortifyAlchemyPercent = fortifyAlchemyPercent;
            TestAndAssert();

            PotionBuilder.Verify(x => x.FortifyAlchemyPercent(fortifyAlchemyPercent), Times.Once);
        }
コード例 #7
0
        public void VariousAlchemyLevel(int alchemyLevel)
        {
            Request.AlchemyLevel = alchemyLevel;
            TestAndAssert();

            PotionBuilder.Verify(x => x.AlchemyLevel(alchemyLevel), Times.Once);
        }
コード例 #8
0
        public void ShouldThrow()
        {
            PotionBuilder
            .Setup(x => x.Validate())
            .Throws(new ValidationException(It.IsAny <string>()));

            Func <Task> action = async() => await Subject.Handle(Request, It.IsAny <CancellationToken>());

            action.Should().Throw <ValidationException>();
        }
コード例 #9
0
        public void Ingredients(IEnumerable <string> ingredientIds)
        {
            Request.IngredientIds = ingredientIds;
            TestAndAssert();

            foreach (var id in ingredientIds)
            {
                PotionBuilder.Verify(x => x.Ingredient(It.Is <IIngredient>(y => y.Id == id)), Times.Once);
            }
        }
コード例 #10
0
 public Test()
 {
     subject = new PotionBuilder(potionFactory.Object, validator.Object);
 }