public void BuildWhenCalledOnRegisterOperandBuilderCreatesRegisterOperand() { var builder = new RegisterOperandBuilder(); var token = new LabelToken { Content = "A" }; var operand = builder.Build(token); Assert.That(operand, Is.TypeOf(typeof(RegisterOperand))); }
public void BuildWhenCalledOnLabelReferenceOperandBuilderCreatesNextWordOperand() { var builder = new LabelReferenceOperandBuilder(); var token = new LabelToken { Content = "label" }; var operand = builder.Build(token); Assert.That(operand, Is.TypeOf(typeof(NextWordOperand))); }
public void BuildWhenCalledOnLabelReferenceOperandBuilderSetsLabelToTokenContent() { var builder = new LabelReferenceOperandBuilder(); var token = new LabelToken { Content = "label" }; var operand = builder.Build(token); Assert.That(operand.Label == "label"); }
public void BuildWhenCalledOnIndirectRegisterOperandBuilderSetsRegisterValueToCorrespondingRegisterIdentifierForRegister() { var builder = new IndirectRegisterOperandBuilder(); var token = new LabelToken { Content = "J" }; var operand = builder.Build(token); Assert.That(operand.RegisterValue, Is.EqualTo((int)RegisterIdentifier.RegJ)); }
public void BuildWhenCalledOnRegisterOperandBuilderThrowsForInvalidRegiterName() { var builder = new RegisterOperandBuilder(); var token = new LabelToken { Content = "AX" }; Assert.Throws<Exception>(() => builder.Build(token)); }
public void MatchWhenCalledWithLabelReturnsTokenPosition() { var tokenMatcher = new LabelToken(); Assert.That(tokenMatcher.Match(":label"), Is.EqualTo(":label")); }