コード例 #1
0
            public void Can_Add_Dependents()
            {
                Feat feat = FeatBuilder.Get().Build();
                Feat sut  = FeatBuilder.Get(2).Build();

                sut.AddDependent(feat);

                Check.That(sut.Dependents).ContainsExactly(feat);
            }
コード例 #2
0
        public void Can_Check_That_Character_Satisfies()
        {
            Feat feat      = FeatBuilder.Get().Build();
            var  character = new Character(new [] { feat });

            var sut = new FeatPrereq(feat);

            Check.That(sut.IsSatisfiedBy(character)).IsTrue();
        }
コード例 #3
0
            public void Can_Check_Stat_Prereqs_When_False()
            {
                var       character = new Character(StatBlock.With().Default().Str(14).Build());
                StatBlock prereq    = StatBlock.With().Str(15).Build();
                Feat      sut       = FeatBuilder.Get().Build();

                sut.AddStatPrereq(prereq);

                Check.That(sut.CanBeTakenBy(character)).IsFalse();
            }
コード例 #4
0
            public void Can_Check_Feat_Prereqs_When_False()
            {
                Feat feat      = FeatBuilder.Get().Build();
                var  character = new Character();
                Feat sut       = FeatBuilder.Get(2).Build();

                sut.AddFeatPrereq(feat);

                Check.That(sut.CanBeTakenBy(character)).IsFalse();
            }
コード例 #5
0
        public void When_Added_To_Feat_Adds_Feat_To_Dependents()
        {
            Feat target = FeatBuilder.Get().Build();
            Feat feat   = FeatBuilder.Get(2).Build();
            var  sut    = new FeatPrereq(feat);

            sut.OnAddedToFeat(target);

            Check.That(feat.Dependents).ContainsExactly(target);
        }
コード例 #6
0
        public void Can_Check_That_Character_Does_Not_Satisfy()
        {
            Feat feat      = FeatBuilder.Get().Build();
            Feat feat2     = FeatBuilder.Get(2).Build();
            var  character = new Character(new [] { feat });

            var sut = new FeatPrereq(feat2);

            Check.That(sut.IsSatisfiedBy(character)).IsFalse();
        }
コード例 #7
0
            public void Can_Add_Feat_Prereqs()
            {
                Feat feat = FeatBuilder.Get().Build();
                Feat sut  = FeatBuilder.Get(2).Build();

                sut.AddFeatPrereq(feat);

                Check.That(sut.Prereqs).HasSize(1);
                Check.That(sut.PrereqFeats).ContainsExactly(feat);
                Check.That(feat.Dependents).ContainsExactly(sut);
            }
コード例 #8
0
            public void Can_Be_Created_By_Builder_With_Num()
            {
                FeatBuilder builder = FeatBuilder.Get(2);

                Feat sut = builder.Build();

                Check.That(sut.Name).IsEqualTo("Feat02");
                Check.That(sut.TextCategory).IsEqualTo("Cat02");
                Check.That(sut.TextPrereq).IsEqualTo("Prereq02");
                Check.That(sut.TextBenefit).IsEqualTo("Benefit02");
                Check.That(sut.TextSource).IsEqualTo("Source02");
            }
コード例 #9
0
            public void Can_Check_Complex_Prereqs_When_Satisfies()
            {
                Feat feat      = FeatBuilder.Get().Build();
                var  character = new Character(StatBlock.With().Default().Str(14).Build(),
                                               new[] { feat });
                StatBlock stat = StatBlock.With().Str(13).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddFeatPrereq(feat);
                sut.AddStatPrereq(stat);

                Check.That(sut.CanBeTakenBy(character)).IsTrue();
            }
コード例 #10
0
            public void Can_Add_Stat_Prereqs()
            {
                StatBlock stat = StatBlock.With().Str(15).Bab(6).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddStatPrereq(stat);

                Check.That(sut.Prereqs).HasSize(1);
                Check.That(sut.PrereqFeats).IsEmpty();
                Check.That(sut.Prereqs.First()).IsInstanceOf <StatPrereq>();
                Check.That(((StatPrereq)sut.Prereqs.First()).Constraints)
                .HasSize(2).And.ContainsPair(Stat.Str, 15)
                .And.ContainsPair(Stat.Bab, 6);
            }
コード例 #11
0
            public void Can_Be_Created_By_Builder_Customized()
            {
                FeatBuilder builder = FeatBuilder.Get()
                                      .WithName("Feat02").WithTextCategory("Cat02")
                                      .WithTextPrereq("Prereq02").WithTextBenefit("Benefit02")
                                      .WithTextSource("Source02");

                Feat sut = builder.Build();

                Check.That(sut.Name).IsEqualTo("Feat02");
                Check.That(sut.TextCategory).IsEqualTo("Cat02");
                Check.That(sut.TextPrereq).IsEqualTo("Prereq02");
                Check.That(sut.TextBenefit).IsEqualTo("Benefit02");
                Check.That(sut.TextSource).IsEqualTo("Source02");
            }
コード例 #12
0
            public void Can_Check_Complex_Prereqs_When_Does_Not_Satisfy(bool goodFeat, bool goodStat)
            {
                Feat feat      = FeatBuilder.Get().Build();
                var  character = new Character(
                    StatBlock.With().Default()
                    .Str(goodStat ? 14 : 12).Build(),
                    goodFeat ? new[] { feat } : new Feat[] {}
                    );
                StatBlock stat = StatBlock.With().Str(13).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddFeatPrereq(feat);
                sut.AddStatPrereq(stat);

                Check.That(sut.CanBeTakenBy(character)).IsFalse();
            }
コード例 #13
0
        public void Can_Be_Created_With_Feats()
        {
            Feat feat  = FeatBuilder.Get().Build();
            Feat feat2 = FeatBuilder.Get(2).Build();

            var sut = new Character(new [] { feat, feat2 });

            Check.That(sut.Feats).HasSize(2);
            Check.That(sut.Feats).Contains(feat, feat2).InThatOrder();

            Check.That(sut.Stats.Str).IsEqualTo(10);
            Check.That(sut.Stats.Dex).IsEqualTo(10);
            Check.That(sut.Stats.Con).IsEqualTo(10);
            Check.That(sut.Stats.Int).IsEqualTo(10);
            Check.That(sut.Stats.Wis).IsEqualTo(10);
            Check.That(sut.Stats.Cha).IsEqualTo(10);
            Check.That(sut.Stats.Bab).IsEqualTo(1);
            Check.That(sut.Stats.Cl).IsEqualTo(-1);
        }
コード例 #14
0
        public void Can_Be_Created_With_Feats_And_Stats()
        {
            StatBlock stats = StatBlock.With()
                              .Str(13).Dex(14).Con(15)
                              .Int(16).Wis(17).Cha(18)
                              .Bab(3).Cl(5).Build();
            Feat feat  = FeatBuilder.Get().Build();
            Feat feat2 = FeatBuilder.Get(2).Build();

            var sut = new Character(stats, new [] { feat, feat2 });

            Check.That(sut.Feats).HasSize(2);
            Check.That(sut.Feats).Contains(feat, feat2).InThatOrder();

            Check.That(sut.Stats.Str).IsEqualTo(13);
            Check.That(sut.Stats.Dex).IsEqualTo(14);
            Check.That(sut.Stats.Con).IsEqualTo(15);
            Check.That(sut.Stats.Int).IsEqualTo(16);
            Check.That(sut.Stats.Wis).IsEqualTo(17);
            Check.That(sut.Stats.Cha).IsEqualTo(18);
            Check.That(sut.Stats.Bab).IsEqualTo(3);
            Check.That(sut.Stats.Cl).IsEqualTo(5);
        }