Пример #1
0
        public CommandFactoryTests()
        {
            //CommandFactory(char separator, IPartFactory factory, CommandFactoryAutoFacAdapter commandFactory)
            var v1 = new OnlyAlphanumericAllowedValidator();
            var v2 = AllwaysGoodValidatorSingleton.Instance;

            Debug.WriteLine(clock.UtcNow + " " + clock.UtcNow.Ticks);
            bool ttt;
            bool tttt;

            for (int i = 0; i < 50000; i++)
            {
                ttt  = v1.Validate("abc123ABC ");
                tttt = v1.Validate("abc%");
            }
            Debug.WriteLine(clock.UtcNow + " " + clock.UtcNow.Ticks);

            var a1 = idfac = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v1);
            var a2 = hostidfac = new PartFactoryAutofacAdapter((data, validator) => new HostIDPart(data, validator), v1);
            var a3 = typefac = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v1);
            var a4 = dataidfac = new PartFactoryAutofacAdapter((data, validator) => new DataPart(data, validator), v1);
            var a5 = emptyfac = new PartFactoryAutofacAdapter((data, validator) => new EmptyPart(validator), v2);

            var partFactory = new PrecisePartFactory(new Dictionary <Shield.Enums.Command.PartType, PartFactoryAutofacAdapter>()
            {
                [Shield.Enums.Command.PartType.ID]     = a1,
                [Shield.Enums.Command.PartType.HostID] = a2,
                [Shield.Enums.Command.PartType.Type]   = a3,
                [Shield.Enums.Command.PartType.Data]   = a4,
                [Shield.Enums.Command.PartType.Empty]  = a5
            });
        }
Пример #2
0
        public CommandFactory2Tests()
        {
            //CommandFactory(char separator, IPartFactory factory, CommandFactoryAutoFacAdapter commandFactory)
            var v1 = new OnlyAlphanumericAllowedValidator();
            var v2 = AllwaysGoodValidatorSingleton.Instance;

            var a1 = idfac = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v1);
            var a2 = hostidfac = new PartFactoryAutofacAdapter((data, validator) => new HostIDPart(data, validator), v1);
            var a3 = targetfac = new PartFactoryAutofacAdapter((data, validator) => new TargetPart(data, validator), v1);
            var a4 = orderfac = new PartFactoryAutofacAdapter((data, validator) => new OrderPart(data, validator), v1);
            var a5 = datafac = new PartFactoryAutofacAdapter((data, validator) => new DataPart(data, validator), v1);
            var a6 = emptyfac = new PartFactoryAutofacAdapter((data, validator) => new EmptyPart(validator), v2);

            var partFactory = new PrecisePartFactory(new Dictionary <PartType, PartFactoryAutofacAdapter>()
            {
                [PartType.ID]     = a1,
                [PartType.HostID] = a2,
                [PartType.Target] = a3,
                [PartType.Order]  = a4,
                [PartType.Data]   = a5,
                [PartType.Empty]  = a6
            });

            var comfacadap = new CommandFactoryAutoFacAdapter((id, hostid, target, order, data, Timestamp) => new Command(id, hostid, target, order, data, TimestampFactory.Timestamp));

            Factory = new CommandFactory('*', partFactory, comfacadap);
        }
Пример #3
0
        public DeviceHandlerContextTests(ITestOutputHelper output)
        {
            Output = output;

            ICommunicationDeviceSettings settings = new SerialPortSettings()
            {
                BaudRate     = /*19200*/ 921600,
                Encoding     = 20127,
                PortNumber   = 4,
                WriteTimeout = -1,
                DataBits     = 8,
                Parity       = Parity.None,
                StopBits     = StopBits.One,
                ReadTimeout  = -1,
            };

            var dataSplitter = new StandardDataStreamSplitter('#');

            var v1 = new OnlyAlphanumericAllowedValidator();
            var v2 = AllwaysGoodValidatorSingleton.Instance;
            var v3 = AllwaysBadValidatorSingleton.Instance;

            var a1 = idfac = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v3);
            var a2 = hostidfac = new PartFactoryAutofacAdapter((data, validator) => new HostIDPart(data, validator), v3);
            var a3 = targetfac = new PartFactoryAutofacAdapter((data, validator) => new TargetPart(data, validator), v3);
            var a4 = orderfac = new PartFactoryAutofacAdapter((data, validator) => new OrderPart(data, validator), v3);
            var a5 = datafac = new PartFactoryAutofacAdapter((data, validator) => new DataPart(data, validator), v3);
            var a6 = emptyfac = new PartFactoryAutofacAdapter((data, validator) => new EmptyPart(validator), v2);

            var partFactory = new PrecisePartFactory(new Dictionary <PartType, PartFactoryAutofacAdapter>()
            {
                [PartType.ID]     = a1,
                [PartType.HostID] = a2,
                [PartType.Target] = a3,
                [PartType.Order]  = a4,
                [PartType.Data]   = a5,
                [PartType.Empty]  = a6
            });

            var comfacadap = new CommandFactoryAutoFacAdapter((id, hostid, target, order, data, Timestamp) => new Command(id, hostid, target, order, data, TimestampFactory.Timestamp));

            var Factory             = new CommandFactory('*', partFactory, comfacadap);
            var ConfirmationFactory = new ConfirmationFactory();
            var Translator          = new CommandTranslator(Factory, new RawCommandFactory('#', '*'));

            ICommunicationDeviceAsync com = new Shield.COMDevice.SerialPortAdapter(settings);

            DHC = new DeviceHandlerContext(com, dataSplitter, Translator);
        }
Пример #4
0
        public static IPartFactory GetAlwaysValidPartFactory()
        {
            var v1 = AllwaysGoodValidatorSingleton.Instance;

            var a1 = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v1);
            var a2 = new PartFactoryAutofacAdapter((data, validator) => new HostIDPart(data, validator), v1);
            var a3 = new PartFactoryAutofacAdapter((data, validator) => new TargetPart(data, validator), v1);
            var a4 = new PartFactoryAutofacAdapter((data, validator) => new OrderPart(data, validator), v1);
            var a5 = new PartFactoryAutofacAdapter((data, validator) => new DataPart(data, validator), v1);
            var a6 = new PartFactoryAutofacAdapter((data, validator) => new EmptyPart(validator), v1);

            var partFactory = new PrecisePartFactory(new Dictionary <Command.PartType, PartFactoryAutofacAdapter>()
            {
                [Command.PartType.ID]     = a1,
                [Command.PartType.HostID] = a2,
                [Command.PartType.Target] = a3,
                [Command.PartType.Order]  = a4,
                [Command.PartType.Data]   = a5,
                [Command.PartType.Empty]  = a6
            });

            return(partFactory);
        }