예제 #1
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();
            }
예제 #2
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);
            }
예제 #3
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();
            }
예제 #4
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();
            }