Ejemplo n.º 1
0
        public MainPageModel()
        {
            #region Preparing

            var log = new Logger();
            Logging.Initialize(log);

            var db = new DataBaseSqlite();
            DbControlling.Initialize(db);

            //TODO убрать тру и пересоздание таблиц вслучае ошибки
            int res = db.Create(true);
            if (res != 0)
            {
                db.Create(true);
            }

            #endregion

            _subscribers = new ConcurrentBag <RemoteHostInfo>();
            _server      = new ServerManager(MulticastHostint, UdpPort, TcpPort);
            _sender      = new SenderManager(MulticastHostint, TcpPort, UdpPort);
            _dbManager   = new DbManager(_myCode);

            _messageManager = new MessageManager(MulticastHostint, _myCode, _sender, _server, _dbManager);
            _actualizer     = new Actualizer(_messageManager, _dbManager, _myCode);

            _requestManager = new RequestManager(_actualizer, _messageManager, _myCode);
            _Poped         += PopHandler;
            _Connected     += PopHandler;
            _messageManager.ConnectMessageReceived += (o, args) => _Connected?.Invoke(args.ConnectMessage);
            _messageManager.TelemetryReceived      += (o, args) => _Poped?.Invoke(args.TelemetryInfo);
            _server.ServerStart();
        }
Ejemplo n.º 2
0
        public void TestGetDevicesProperties()
        {
            //1.1
            var db = new DataBaseSqlite();

            DbControlling.Initialize(db);
            DbReader = DbControlling.DbReader;

            string deviceCode1  = RndString();
            string deviceCode2  = RndString();
            string deviceCode3  = RndString();
            string deviceName1  = RndString();
            string deviceName2  = RndString();
            string deviceName3  = RndString();
            string macAddress1  = RndString();
            string macAddress2  = RndString();
            string macAddress3  = RndString();
            string propName1    = RndString();
            string propName2    = RndString();
            string propName3    = RndString();
            string isSetter1    = RndNumber(max: 2).ToString();
            string isSetter2    = RndNumber(max: 2).ToString();
            string isSetter3    = RndNumber(max: 2).ToString();
            string propType1    = RndPropertyType.ToString();
            string propType2    = RndPropertyType.ToString();
            string propType3    = RndPropertyType.ToString();
            string description1 = RndString();
            string description2 = RndString();
            string description3 = RndString();
            string propCode1    = RndString();
            string propCode2    = RndString();
            string propCode3    = RndString();

            var propInfo1   = new PropertyInfo(description1, isSetter1.BoolFormater(), propType1.EnumFotmater <ProperyType>());
            var properties1 = new Properties(new Dictionary <string, PropertyInfo> {
                { propCode1, propInfo1 }
            });
            var propInfo2   = new PropertyInfo(description2, isSetter2.BoolFormater(), propType2.EnumFotmater <ProperyType>());
            var properties2 = new Properties(new Dictionary <string, PropertyInfo> {
                { propCode2, propInfo2 }
            });
            var propInfo3   = new PropertyInfo(description3, isSetter3.BoolFormater(), propType3.EnumFotmater <ProperyType>());
            var properties3 = new Properties(new Dictionary <string, PropertyInfo> {
                { propCode3, propInfo3 }
            });
            var deviceExpected = new Devices
            {
                { deviceCode1, new Device(deviceCode1, macAddress1, deviceName1, properties1) },
                { deviceCode2, new Device(deviceCode2, macAddress2, deviceName2, properties2) },
                { deviceCode3, new Device(deviceCode3, macAddress3, deviceName3, properties3) }
            };
            //1.2
            int err = db.Create(true);

            Assert.AreEqual(err, 0);

            err = db.AddDevice(deviceCode1, deviceName1, macAddress1);
            Assert.AreEqual(err, 0);
            err = db.AddDevice(deviceCode2, deviceName2, macAddress2);
            Assert.AreEqual(err, 0);
            err = db.AddDevice(deviceCode3, deviceName3, macAddress3);
            Assert.AreEqual(err, 0);

            err = db.AddProperties(deviceCode1, propName1, propType1, isSetter1, description1);
            Assert.AreEqual(err, 0);
            err = db.AddProperties(deviceCode2, propName2, propType2, isSetter2, description2);
            Assert.AreEqual(err, 0);
            err = db.AddProperties(deviceCode3, propName3, propType3, isSetter3, description3);
            Assert.AreEqual(err, 0);

            //2
            var devices = GetDevicesProperties();

            //3

            bool Compare(KeyValuePair <string, Device> a, KeyValuePair <string, Device> b)
            {
                return(a.Key == b.Key &&
                       a.Value.MacAddress == b.Value.MacAddress &&
                       a.Value.Code == b.Value.Code &&
                       a.Value.Name == b.Value.Name &&
                       !a.Value.Info.Except(b.Value.Info).Any());
            }

            Assert.AreEqual(deviceExpected.Count, devices.Count);
            var comparer = new EquaComparer <KeyValuePair <string, Device> >(Compare, device => device.Key.GetHashCode());

            Assert.IsEmpty(deviceExpected.Except(devices, comparer));
        }