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(); }
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)); }