Ejemplo n.º 1
0
        public void TestEnum()
        {
            CommandReflection.AddMappedType(typeof(EnumClass));
            var c1 = (EnumClass)CommandMapping.Parse("M999 X1");

            Assert.IsTrue(c1.X == EnumObject.A);
            Assert.IsTrue(c1.ToGCode() == "M999 X1");
            var c2 = (EnumClass)CommandMapping.Parse("M999 X2");

            Assert.IsTrue(c2.X == EnumObject.B);
            Assert.IsTrue(c2.ToGCode() == "M999 X2");
            var c3 = (EnumClass)CommandMapping.Parse("M999 X5");

            Assert.IsTrue(c3.X == (EnumObject)5);
            Assert.IsTrue(c3.ToGCode() == "M999 X5");
            var c4 = (EnumClass)CommandMapping.Parse("M999 X");

            Assert.IsTrue(c4.X == (EnumObject)0);
            Assert.IsTrue(c4.ToGCode() == "M999 X0");
            var c5 = (EnumClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.X == (EnumObject)0);
            Assert.IsTrue(c5.ToGCode() == "M999 X0");
            var c6 = (EnumClass)CommandMapping.Parse("M999 X-1.1");

            Assert.IsTrue(c6.X == (EnumObject)(-1));
            Assert.IsTrue(c6.ToGCode() == "M999 X-1");
        }
Ejemplo n.º 2
0
        public void TestNullableEnum()
        {
            CommandReflection.AddMappedType(typeof(EnumClass));
            var c1 = (EnumClass)CommandMapping.Parse("M999 Y1");

            Assert.IsTrue(c1.Y == EnumObject.A);
            Assert.IsTrue(c1.ToGCode() == "M999 X0 Y1");
            var c2 = (EnumClass)CommandMapping.Parse("M999 Y2");

            Assert.IsTrue(c2.Y == EnumObject.B);
            Assert.IsTrue(c2.ToGCode() == "M999 X0 Y2");
            var c3 = (EnumClass)CommandMapping.Parse("M999 Y5");

            Assert.IsTrue(c3.Y == (EnumObject)5);
            Assert.IsTrue(c3.ToGCode() == "M999 X0 Y5");
            var c4 = (EnumClass)CommandMapping.Parse("M999 Y");

            Assert.IsTrue(c4.Y == null);
            Assert.IsTrue(c4.ToGCode() == "M999 X0");
            var c5 = (EnumClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.Y == null);
            Assert.IsTrue(c5.ToGCode() == "M999 X0");
            var c6 = (EnumClass)CommandMapping.Parse("M999 Y-1.1");

            Assert.IsTrue(c6.Y == (EnumObject)(-1));
            Assert.IsTrue(c6.ToGCode() == "M999 X0 Y-1");
        }
Ejemplo n.º 3
0
        public void DescribeParameterWithAliases_AliasesDescribed()
        {
            var parameters = CommandReflection.Describe <ArgumentWithAlias>().Arguments;

            ValidateParameterDescription <int>(
                parameters.First(),
                "MyProperty",
                'p');
        }
Ejemplo n.º 4
0
        private CommandInfo ValidateCommandDescription <T>(
            string name = null)
        {
            var info = CommandReflection.Describe <T>();

            info.Should().NotBeNull();
            info.Type.Should().Be <T>();
            info.Description.Should().BeNull();
            info.Name.Should().Be(name ?? typeof(T).Name);
            info.Arguments.Should().BeEmpty();

            return(info);
        }
Ejemplo n.º 5
0
        public void DescribeCommandInvalidExecuteReturnAsync_Exception()
        {
            try
            {
                CommandReflection.Describe <InvalidExecuteReturnAsync>();
            }
            catch (CommandReflectionException ex)
            {
                ex.InnerException.Should().NotBeNull();
                ex.InnerException.Message.Should().Contain("The async Execute function must return a Task<int>");

                throw ex;
            }
        }
Ejemplo n.º 6
0
        public void DescribeCommandInvalidExecuteParametersAsync_Exception()
        {
            try
            {
                CommandReflection.Describe <InvalidExecuteParametersAsync>();
            }
            catch (CommandReflectionException ex)
            {
                ex.InnerException.Should().NotBeNull();
                ex.InnerException.Message.Should().Contain("The Execute function must accept a CommandExecutionContext parameter");

                throw ex;
            }
        }
Ejemplo n.º 7
0
        public void DescribeCommandInvalidExecuteReturn_Exception()
        {
            try
            {
                CommandReflection.Describe <InvalidExecuteReturn>();
            }
            catch (CommandReflectionException ex)
            {
                ex.InnerException.Should().NotBeNull();
                ex.InnerException.Message.Should().Be("the Execute function must return an int.");

                throw ex;
            }
        }
Ejemplo n.º 8
0
        public void DescribeCommandWithNoExecute_Exception()
        {
            try
            {
                CommandReflection.Describe <NoExecute>();
            }
            catch (CommandReflectionException ex)
            {
                ex.InnerException.Should().NotBeNull();
                ex.InnerException.Message.Should().Contain("The command must implement a public Execute function");

                throw ex;
            }
        }
Ejemplo n.º 9
0
        public void RegisterCommand(Type type)
        {
            // describe command

            var info = CommandReflection.Describe(type);

            // check for duplicate command

            var duplicateCmd = _commands.Where(c => c.Name.Equals(info.Name, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

            if (duplicateCmd != null)
            {
                throw new ArgumentException($"Cannot register command type {type.FullName} because a command with the same name is already registered :: {duplicateCmd.Type.FullName}");
            }

            _commands.Add(info);
        }
Ejemplo n.º 10
0
        public void TestNullableByte()
        {
            CommandReflection.AddMappedType(typeof(ByteClass));
            var c2 = (ByteClass)CommandMapping.Parse("M999 Y1.1");

            Assert.IsTrue(c2.Y == 1);
            Assert.IsTrue(c2.ToGCode() == "M999 X0 Y1");
            var c3 = (ByteClass)CommandMapping.Parse("M999 Y1");

            Assert.IsTrue(c3.Y == 1);
            Assert.IsTrue(c3.ToGCode() == "M999 X0 Y1");
            var c4 = (ByteClass)CommandMapping.Parse("M999 Y");

            Assert.IsTrue(c4.Y == null);
            Assert.IsTrue(c4.ToGCode() == "M999 X0");
            var c5 = (ByteClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.Y == null);
            Assert.IsTrue(c5.ToGCode() == "M999 X0");
        }
Ejemplo n.º 11
0
        public void TestByte()
        {
            CommandReflection.AddMappedType(typeof(ByteClass));
            var c2 = (ByteClass)CommandMapping.Parse("M999 X1.1");

            Assert.IsTrue(c2.X == 1);
            Assert.IsTrue(c2.ToGCode() == "M999 X1");
            var c3 = (ByteClass)CommandMapping.Parse("M999 X1");

            Assert.IsTrue(c3.X == 1);
            Assert.IsTrue(c3.ToGCode() == "M999 X1");
            var c4 = (ByteClass)CommandMapping.Parse("M999 X");

            Assert.IsTrue(c4.X == 0);
            Assert.IsTrue(c4.ToGCode() == "M999 X0");
            var c5 = (ByteClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.X == 0);
            Assert.IsTrue(c5.ToGCode() == "M999 X0");
        }
Ejemplo n.º 12
0
        public void TestDecimal()
        {
            CommandReflection.AddMappedType(typeof(DecimalClass));
            var c1 = (DecimalClass)CommandMapping.Parse("M999 X-1.1");

            Assert.IsTrue(c1.X == -1.1m);
            Assert.IsTrue(c1.ToGCode() == "M999 X-1.1");
            var c2 = (DecimalClass)CommandMapping.Parse("M999 X1.1");

            Assert.IsTrue(c2.X == 1.1m);
            Assert.IsTrue(c2.ToGCode() == "M999 X1.1");
            var c3 = (DecimalClass)CommandMapping.Parse("M999 X1");

            Assert.IsTrue(c3.X == 1);
            Assert.IsTrue(c3.ToGCode() == "M999 X1");
            var c4 = (DecimalClass)CommandMapping.Parse("M999 X");

            Assert.IsTrue(c4.X == 0);
            Assert.IsTrue(c4.ToGCode() == "M999 X0");
            var c5 = (DecimalClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.X == 0);
            Assert.IsTrue(c5.ToGCode() == "M999 X0");
        }
Ejemplo n.º 13
0
        public void TestBool()
        {
            CommandReflection.AddMappedType(typeof(BoolClass));
            var c1 = (BoolClass)CommandMapping.Parse("M999 X-1.1");

            Assert.IsTrue(c1.X == true);
            Assert.IsTrue(c1.ToGCode() == "M999 X");
            var c2 = (BoolClass)CommandMapping.Parse("M999 X1.1");

            Assert.IsTrue(c2.X == true);
            Assert.IsTrue(c2.ToGCode() == "M999 X");
            var c3 = (BoolClass)CommandMapping.Parse("M999 X1");

            Assert.IsTrue(c3.X == true);
            Assert.IsTrue(c3.ToGCode() == "M999 X");
            var c4 = (BoolClass)CommandMapping.Parse("M999 X");

            Assert.IsTrue(c4.X == true);
            Assert.IsTrue(c4.ToGCode() == "M999 X");
            var c5 = (BoolClass)CommandMapping.Parse("M999");

            Assert.IsTrue(c5.X == false);
            Assert.IsTrue(c5.ToGCode() == "M999");
        }
 public void AutoAddCustomCommand()
 {
     CommandReflection.ClearMappings();
     var cmd = new CustomCommand();
     var g   = cmd.ToGCode();
 }
 public void AutoAddCustomCommand2()
 {
     CommandReflection.ClearMappings();
     var cmd = CommandMapping.Parse(typeof(CustomCommand), "M999 X");
     var g   = cmd.ToGCode();
 }
 public void CustomCommandAddAssembly()
 {
     CommandReflection.ClearMappings();
     CommandReflection.AddMappedTypesFromAssembly(System.Reflection.Assembly.GetExecutingAssembly());
     var cmd = CommandMapping.Parse("M999 X");
 }
 public void CustomCommandAddType()
 {
     CommandReflection.ClearMappings();
     CommandReflection.AddMappedType(typeof(CustomCommand));
     var cmd = CommandMapping.Parse("M999 X");
 }
 public void CustomCommandMappingException()
 {
     CommandReflection.ClearMappings();
     Assert.Catch(typeof(Exception), () => { var cmd = CommandMapping.Parse("M999 X"); });
 }
Ejemplo n.º 19
0
        public void DescribeWithOneEmptyParameter_ParameterDescribed()
        {
            var parameters = CommandReflection.Describe <EmptyArgumentAttribute>().Arguments;

            ValidateParameterDescription <string>(parameters.First(), "TestArg");
        }
Ejemplo n.º 20
0
 public void DescribeCommandOfWrongBaseType_Exception()
 {
     CommandReflection.Describe <CommandWithWrongBase>();
 }
Ejemplo n.º 21
0
        public void DescribeWithOneParameter_ParameterDescribed()
        {
            var parameters = CommandReflection.Describe <ArgumentAttributeCmd>().Arguments;

            ValidateParameterDescription <int>(parameters.First(), "MyName");
        }