public void Visit_PutActionWithCardSetType_LogsNoError() { // Arrange PutActionNode putActionNode = new PutActionNode(DummySrcPos); putActionNode.Source = DeckReferenceNode; putActionNode.Target = DeckReferenceNode; // Act Checker.Visit(putActionNode); // Assert Assert.IsTrue(ErrorLogger.Errors.Count == 0); }
public void Visit_PutActionWithNonCardSetType_LogsExpectedTypeError() { // Arrange PutActionNode putActionNode = new PutActionNode(DummySrcPos); putActionNode.Source = PlayerReferenceNode; putActionNode.Target = DeckReferenceNode; // Act Checker.Visit(putActionNode); // Assert Assert.IsTrue(ErrorLogger.Errors.Count == 1 && ErrorLogger.Errors.First() is ExpectedTypeError); }
public void Visit_PutActionNode_EmitsCorrectCode() { // Arrange PutActionNode putActionNode = new PutActionNode(DummySrcPos); putActionNode.Source = HandReferenceNode; putActionNode.Target = DeckReferenceNode; StringBuilder builder = new StringBuilder(); builder.Append("deck.AddRange(hand);\n"); builder.Append("hand.Clear();\n"); string expectedResult = builder.ToString(); // Act string actualResult = CodeGenerator.Visit(putActionNode); // Assert Assert.AreEqual(expectedResult, actualResult); }