Exemple #1
0
        public void CanReleaseBallIfGumballsCountMoreThan0()
        {
            var gM = new GumballMachineContext(1);

            Assert.AreEqual(gM.GetBallCount(), (uint)1);
            gM.ReleaseBall();
            Assert.AreEqual(gM.GetBallCount(), (uint)0);
        }
        public void ReleaseBall_WithBalls_ShouldReleaseOneBall()
        {
            var gm = new GumballMachineContext(2);

            gm.ReleaseBall();
            Assert.AreEqual((uint)1, gm.GetBallCount());
        }
        public void ReleaseBall_WithNoBalls_ShouldNotReleaseBall()
        {
            var gm = new GumballMachineContext(0);

            gm.ReleaseBall();
            Assert.AreEqual((uint)0, gm.GetBallCount());
        }
        public void EjectQuarter_InSoldOutState_ShouldNotChangeGMState()
        {
            var gm = new GumballMachineContext(0);

            gm.EjectQuarter();
            Assert.AreEqual((uint)0, gm.GetBallCount());
            Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString());
        }
        public void TurnCrank_InNoQuarterState_ShouldNotChangeGMState()
        {
            var gm = new GumballMachineContext(5);

            gm.TurnCrank();
            Assert.AreEqual((uint)5, gm.GetBallCount());
            Assert.AreEqual(GetGumballMachineString(5, "waiting for quarter"), gm.ToString());
        }
        public void InsertQuarter_InNoQuarterState_ShouldChangeGMStateToHasQuarterState()
        {
            var gm = new GumballMachineContext(5);

            gm.InsertQuarter();
            Assert.AreEqual((uint)5, gm.GetBallCount());
            Assert.AreEqual(GetGumballMachineString(5, "waiting for turn of crank"), gm.ToString());
        }
        public void TurnCrank_WithBalls_InHasQuarterState_ShouldChangeGMStateToNoQuarterState()
        {
            var gm = new GumballMachineContext(2);

            gm.InsertQuarter();
            gm.TurnCrank();
            Assert.AreEqual((uint)1, gm.GetBallCount());
            Assert.AreEqual(GetGumballMachineString(1, "waiting for quarter"), gm.ToString());
        }
        public void TurnCrank_WithOneBall_InHasQuarterState_ShouldChangeGMStateToSoldOutState()
        {
            var gm = new GumballMachineContext(1);

            gm.InsertQuarter();
            gm.TurnCrank();
            Assert.AreEqual((uint)0, gm.GetBallCount());
            Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString());
        }
Exemple #9
0
        public void CanCreateGumballMachineWithoutAddingGumballsInSoldOutState()
        {
            var  strState = "sold out";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext();

            Assert.AreEqual(gM.GetBallCount(), (uint)0);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #10
0
        public void CanCreateGumballMachineWithAdding5GumballsInNoQuarterState()
        {
            var  strState = "waiting for quarter";
            uint gumballs = 5;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(5);

            Assert.AreEqual(gM.GetBallCount(), (uint)5);
            Assert.AreEqual(gM.ToString(), testStr);
        }
        public void CantEjectQuartersInSoldOutState()
        {
            var  strState = "sold out";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext();

            gM.EjectQuarters();
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
        public void CanRefillGumballMachineWithAddingMoreThan0GumballsInSoldOutStateAndMoveToNoQuarterState()
        {
            var  strState = "waiting for quarter";
            uint gumballs = 1;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext();

            gM.Refill(gumballs);
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
        public void CanRefillGumballMachineWithAdding0GumballsInSoldOutState()
        {
            var  strState = "sold out";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(gumballs);

            gM.Refill(0);
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #14
0
        public void CanSetSoldState()
        {
            var  strState = "delivering a gumball";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext();

            gM.SetSoldState();
            Assert.AreEqual(gM.GetBallCount(), (uint)0);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #15
0
        public void CanSetHasQuarterState()
        {
            var  strState = "waiting for turn of crank";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext();

            gM.SetHasQuarterState();
            Assert.AreEqual(gM.GetBallCount(), (uint)0);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #16
0
        public void CanSetSoldOutState()
        {
            var  strState = "sold out";
            uint gumballs = 1;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(1);

            gM.SetSoldOutState();
            Assert.AreEqual(gM.GetBallCount(), (uint)1);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #17
0
        public void CanInsertQuarterInGumballInNoQuarterStateAndGoToQuarterState()
        {
            var  strState = "waiting for turn of crank";
            uint gumballs = 5;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(5);

            gM.InsertQuarter();
            Assert.AreEqual(gM.GetBallCount(), (uint)5);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #18
0
        public void Refill_InSoldOutState_ShouldRefill()
        {
            var gm = new GumballMachineContext(0);

            Assert.AreEqual(GetGumballMachineString(0, "sold out"), gm.ToString());

            sb.Remove(0, sb.Length);
            gm.Refill(2);
            Assert.AreEqual((uint)2, gm.GetBallCount());
            Assert.AreEqual("Gumballs refilled. Gumballs count: 2\r\n", sw.ToString());
        }
Exemple #19
0
        public void CanTurnCrankInHasQuarterStateAndGoToNoQuarterStateIfAmountOfGumballsIs1BeforeTurningCrank()
        {
            var  strState = "sold out";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(1);

            gM.InsertQuarter();
            gM.TurnCrank();
            Assert.AreEqual(gM.GetBallCount(), (uint)0);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #20
0
        public void CanTurnCrankInHasQuarterStateAndGoToNoQuarterStateIfAmountOfGumballsBeforeTurningCrankMoreThan1()
        {
            var  strState = "waiting for quarter";
            uint gumballs = 1;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(2);

            gM.InsertQuarter();
            gM.TurnCrank();
            Assert.AreEqual(gM.GetBallCount(), (uint)1);
            Assert.AreEqual(gM.ToString(), testStr);
        }
        public void CanInsertQuarterTurnCrankInHasQuarterStateAndDespenseBallAndMovetoNoQuarterStateIfBallsMoreThan0()
        {
            var  strState = "waiting for quarter";
            uint gumballs = 1;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(2);

            gM.InsertQuarter();
            gM.TurnCrank();
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
        public void CanInsertQuarterTurnCrankInHasQuarterStateAndDespenseBallAndMovetoSoldOutStateIfBalls0()
        {
            var  strState = "sold out";
            uint gumballs = 0;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(1);

            gM.InsertQuarter();
            gM.TurnCrank();
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #23
0
        public void Refill_InNoQuarterState_ShouldRefill()
        {
            var gm = new GumballMachineContext(2);

            Assert.AreEqual(GetGumballMachineString(2, "waiting for quarter"), gm.ToString());

            sb.Remove(0, sb.Length);
            gm.Refill(2);

            Assert.AreEqual((uint)4, gm.GetBallCount());
            Assert.AreEqual("Gumballs refilled. Gumballs count: 4\r\n", sw.ToString());
        }
        public void CanRefillMachineInHasQuarterState()
        {
            var  strState = "waiting for turn of crank";
            uint gumballs = 2;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(1);

            gM.InsertQuarter();
            gM.Refill(1);
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #25
0
        public void Refill_InSoldState_ShouldNotRefill()
        {
            var gm = new GumballMachineContext(5);

            gm.SetSoldState();

            Assert.AreEqual(GetGumballMachineString(5, "delivering a gumball"), gm.ToString());

            sb.Remove(0, sb.Length);
            gm.Refill(2);
            Assert.AreEqual((uint)5, gm.GetBallCount());
            Assert.AreEqual("Can't refill gumballs when machine is giving you a gumball\r\n", sw.ToString());
        }
        public void CanEjectAllQuartersInHasQuarterStateAndMoveToNoQuarterState()
        {
            var  strState = "waiting for quarter";
            uint gumballs = 1;
            var  testStr  = GetGumballMachineTestParsedString(gumballs, strState);
            var  gM       = new GumballMachineContext(gumballs);

            gM.InsertQuarter();
            gM.InsertQuarter();
            gM.EjectQuarters();
            Assert.AreEqual(gM.GetBallCount(), gumballs);
            Assert.AreEqual(gM.ToString(), testStr);
        }
Exemple #27
0
        public void Refill_InHasQuarterState_ShouldRefill_And_NotLostQuarters()
        {
            var gm = new GumballMachineContext(2);

            gm.InsertQuarter();
            gm.InsertQuarter();
            Assert.AreEqual(GetGumballMachineString(2, "waiting for turn of crank"), gm.ToString());

            sb.Remove(0, sb.Length);
            gm.Refill(2);

            Assert.AreEqual((uint)4, gm.GetBallCount());
            Assert.AreEqual((uint)2, gm.GetQuartersCount());
            Assert.AreEqual("Gumballs refilled. Gumballs count: 4\r\n", sw.ToString());
        }
Exemple #28
0
        public void TurnCrank_And_InsertExtraQuarters_ShouldNotChangeGMState()
        {
            var gm = new GumballMachineContext(5);

            gm.InsertQuarter();
            gm.InsertQuarter();
            gm.InsertQuarter();

            Assert.AreEqual((uint)3, gm.GetQuartersCount());

            gm.TurnCrank();
            gm.TurnCrank();

            Assert.AreEqual((uint)1, gm.GetQuartersCount());
            Assert.AreEqual((uint)3, gm.GetBallCount());

            gm.InsertQuarter();

            Assert.AreEqual((uint)2, gm.GetQuartersCount());
            Assert.AreEqual(GetGumballMachineString(3, "waiting for turn of crank"), gm.ToString());
        }
        public void GetBallCount_ShouldReturnBallCount()
        {
            var gm = new GumballMachineContext(5);

            Assert.AreEqual((uint)5, gm.GetBallCount());
        }
Exemple #30
0
        public void CanGetBallsCount()
        {
            var gM = new GumballMachineContext();

            Assert.AreEqual(gM.GetBallCount(), (uint)0);
        }