Created
November 8, 2012 20:01
-
-
Save erikdietrich/4041162 to your computer and use it in GitHub Desktop.
Bowling Score Calculator Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
namespace ScratchPadTest | |
{ | |
[TestClass] | |
public class BowlingTest | |
{ | |
[TestClass] | |
public class Constructor | |
{ | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void Initializes_Score_To_Zero() | |
{ | |
var scoreCalculator = new BowlingScoreCalculator(); | |
Assert.AreEqual<int>(0, scoreCalculator.Score); | |
} | |
} | |
[TestClass] | |
public class BowlFrame | |
{ | |
private static BowlingScoreCalculator Target { get; set; } | |
[TestInitialize()] | |
public void BeforeEachTest() | |
{ | |
Target = new BowlingScoreCalculator(); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void With_Throws_0_And_1_Results_In_Score_1() | |
{ | |
var frame = new Frame(0, 1); | |
Target.BowlFrame(frame); | |
Assert.AreEqual<int>(frame.FirstThrow + frame.SecondThrow, Target.Score); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void With_Throws_2_And_3_Results_In_Score_5() | |
{ | |
var frame = new Frame(2, 3); | |
Target.BowlFrame(frame); | |
Assert.AreEqual<int>(frame.FirstThrow + frame.SecondThrow, Target.Score); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void Sets_Score_To_2_After_2_Frames_With_Score_Of_1_Each() | |
{ | |
var frame = new Frame(1, 0); | |
Target.BowlFrame(frame); | |
Target.BowlFrame(frame); | |
Assert.AreEqual<int>(frame.Total + frame.Total, Target.Score); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void Sets_Score_To_Twenty_After_Spare_Then_Five_Then_Zero() | |
{ | |
var firstFrame = new Frame(9, 1); | |
var secondFrame = new Frame(5, 0); | |
Target.BowlFrame(firstFrame); | |
Target.BowlFrame(secondFrame); | |
Assert.AreEqual<int>(20, Target.Score); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void Sets_Score_To_25_After_Strike_Then_Five_Five() | |
{ | |
var firstFrame = Frame.Strike; | |
var secondFrame = new Frame(6, 4); | |
Target.BowlFrame(firstFrame); | |
Target.BowlFrame(secondFrame); | |
Assert.AreEqual<int>(30, Target.Score); | |
} | |
[TestMethod, Owner("ebd"), TestCategory("Proven"), TestCategory("Unit")] | |
public void Sets_Score_To_57_After_Two_Strikes_And_A_Nine() | |
{ | |
Target.BowlFrame(Frame.Strike); | |
Target.BowlFrame(Frame.Strike); | |
Target.BowlFrame(new Frame(9, 0)); | |
Assert.AreEqual<int>(57, Target.Score); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment