public void Indexer_Returns_Negative_When_No_Stat() { StatBlock sut = StatBlock.With() .Str(13).Build(); Check.That(sut[Stat.Dex]).IsEqualTo(-1); }
public void Utility_Property_Returns_Negative_When_No_Stat() { StatBlock sut = StatBlock.With() .Str(13).Build(); Check.That(sut.Dex).IsEqualTo(-1); }
public void Can_Check_That_Character_Does_Not_Satisfy() { var character = new Character(StatBlock.With().Default().Str(13).Dex(15).Wis(10).Build()); var sut = new StatPrereq(StatBlock.With().Dex(15).Wis(9).Str(15).Build()); Check.That(sut.IsSatisfiedBy(character)).IsFalse(); }
public void Can_Be_Created() { var sut = new StatPrereq(StatBlock.With().Dex(15).Wis(13).Build()); Check.That(sut.Constraints).HasSize(2) .And.ContainsPair(Stat.Dex, 15) .And.ContainsPair(Stat.Wis, 13); }
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(); }
public void Can_Be_Converted_To_String() { StatBlock sut = StatBlock.With() .Str(13).Dex(14).Con(15) .Wis(17).Cha(18) .Bab(3).Cl(5).Build(); string str = sut.ToString(); Check.That(str).IsEqualTo("STR: 13; DEX: 14; CON: 15; INT: -1; WIS: 17; CHA: 18; BAB: 3; CL: 5;"); }
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(); }
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); }
public void Can_Be_Created_By_Builder_With_Defaults() { StatBlock sut = StatBlock.With().Default() .Str(13).Build(); Check.That(sut.Stats).HasSize(7); Check.That(sut.Stats[Stat.Str]).IsEqualTo(13); Check.That(sut.Stats[Stat.Dex]).IsEqualTo(10); Check.That(sut.Stats[Stat.Con]).IsEqualTo(10); Check.That(sut.Stats[Stat.Int]).IsEqualTo(10); Check.That(sut.Stats[Stat.Wis]).IsEqualTo(10); Check.That(sut.Stats[Stat.Cha]).IsEqualTo(10); Check.That(sut.Stats[Stat.Bab]).IsEqualTo(1); Check.That(sut.Stats).Not.ContainsKey(Stat.Cl); }
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(); }
public void Can_Be_Accessed_With_Utility_Properties() { StatBlock sut = StatBlock.With() .Str(13).Dex(14).Con(15) .Int(16).Wis(17).Cha(18) .Bab(3).Cl(5).Build(); Check.That(sut.Str).IsEqualTo(13); Check.That(sut.Dex).IsEqualTo(14); Check.That(sut.Con).IsEqualTo(15); Check.That(sut.Int).IsEqualTo(16); Check.That(sut.Wis).IsEqualTo(17); Check.That(sut.Cha).IsEqualTo(18); Check.That(sut.Bab).IsEqualTo(3); Check.That(sut.Cl).IsEqualTo(5); }
public void Can_Be_Accessed_With_Indexer() { StatBlock sut = StatBlock.With() .Str(13).Dex(14).Con(15) .Int(16).Wis(17).Cha(18) .Bab(3).Cl(5).Build(); Check.That(sut[Stat.Str]).IsEqualTo(13); Check.That(sut[Stat.Dex]).IsEqualTo(14); Check.That(sut[Stat.Con]).IsEqualTo(15); Check.That(sut[Stat.Int]).IsEqualTo(16); Check.That(sut[Stat.Wis]).IsEqualTo(17); Check.That(sut[Stat.Cha]).IsEqualTo(18); Check.That(sut[Stat.Bab]).IsEqualTo(3); Check.That(sut[Stat.Cl]).IsEqualTo(5); }
public void Can_Be_Created_By_Builder() { StatBlock sut = StatBlock.With() .Str(13).Dex(14).Con(15) .Int(16).Wis(17).Cha(18) .Bab(3).Cl(5).Build(); Check.That(sut.Stats).HasSize(8); Check.That(sut.Stats[Stat.Str]).IsEqualTo(13); Check.That(sut.Stats[Stat.Dex]).IsEqualTo(14); Check.That(sut.Stats[Stat.Con]).IsEqualTo(15); Check.That(sut.Stats[Stat.Int]).IsEqualTo(16); Check.That(sut.Stats[Stat.Wis]).IsEqualTo(17); Check.That(sut.Stats[Stat.Cha]).IsEqualTo(18); Check.That(sut.Stats[Stat.Bab]).IsEqualTo(3); Check.That(sut.Stats[Stat.Cl]).IsEqualTo(5); }
public void Can_Be_Created_With_Custom_Stats() { StatBlock stats = StatBlock.With() .Str(13).Dex(14).Con(15) .Int(16).Wis(17).Cha(18) .Bab(3).Cl(5).Build(); var sut = new Character(stats); 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); Check.That(sut.Feats).HasSize(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); }