public void PopDeletesReturnAddressAndForNextLoops() { var runEnvironment = new RunEnvironment(); var sut = new Pop(runEnvironment); var line10 = new ProgramLine(10, new List <IToken> { new Token("1000") }); var line1000 = new ProgramLine(1000, new List <IToken> { }); line10.NextToken(); runEnvironment.CurrentLine = line1000; runEnvironment.ProgramStack.Push(new StackEntry { Line = line10, LineToken = line10.CurrentToken }); runEnvironment.ProgramStack.Push(new StackEntry { Line = line10, LineToken = line10.CurrentToken }); runEnvironment.ProgramStack.Push(new StackEntry { VariableName = "A", Line = line10, LineToken = line10.CurrentToken }); runEnvironment.ProgramStack.Push(new StackEntry { VariableName = "B", Line = line10, LineToken = line10.CurrentToken }); sut.Execute(); Assert.AreEqual(1, runEnvironment.ProgramStack.Count); Assert.AreEqual(line1000, runEnvironment.CurrentLine); }