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));
        }
예제 #6
0
        public void MatchWhenCalledWithLabelReturnsTokenPosition()
        {
            var tokenMatcher = new LabelToken();

            Assert.That(tokenMatcher.Match(":label"), Is.EqualTo(":label"));
        }