/// <summary> /// Deserializes a json object into a Device object. /// </summary> /// <param name="jT"></param> /// <param name="serverInteractor"></param> /// <returns>A Device Object</returns> public Device DeserializeDevice(JToken jT, HestiaServerInteractor serverInteractor) { // get id, name and type string id = jT.Value <string>("deviceId"); string name = jT.Value <string>("name"); string type = jT.Value <string>("type"); // get activators JToken activators = jT.SelectToken("activators"); List <Activator> activatorList = new List <Activator>(); ActivatorDeserializer activatorDeserializer = new ActivatorDeserializer(); foreach (JToken activator in activators) { activatorList.Add(activatorDeserializer.DeserializeActivator(activator)); } Device device = new Device(id, name, type, activatorList, serverInteractor); foreach (Activator activator in activatorList) { activator.Device = device; } return(device); }
public void SetServerInteractor() { NetworkHandler dummyNetworkHandler = new NetworkHandler(address); HestiaServerInteractor dummyServerInteractor = new HestiaServerInteractor(dummyNetworkHandler); dummyServer.Interactor = dummyServerInteractor; Assert.IsTrue(dummyServer.Interactor.Equals(dummyServerInteractor)); }
public void SetUpActivators() { networkHandler = new NetworkHandler(dummyAddress); serverInteractor = new HestiaServerInteractor(networkHandler); device = new Device("1234", "nice_device", "light", new List <Activator>(), serverInteractor); boolId = "123"; boolName = "dummyBoolName"; boolRank = 0; boolRawState = false; boolStateType = "bool"; boolActivatorState = new ActivatorState(boolRawState, boolStateType); boolActivator = new Activator(boolId, boolName, boolRank, boolActivatorState) { Device = device }; floatId = "123456"; floatName = "dummyFloatName"; floatRank = 1; floatRawState = 0.5f; floatStateType = "float"; floatActivatorState = new ActivatorState(floatRawState, floatStateType); floatActivator = new Activator(floatId, floatName, floatRank, floatActivatorState) { Device = device }; Assert.IsNotNull(boolActivator); Assert.IsNotNull(floatActivator); }
public void GetServerInteractor() { NetworkHandler dummyNetworkHandler = new NetworkHandler(address); HestiaServerInteractor dummyServerInteractor = new HestiaServerInteractor(dummyNetworkHandler); dummyServer.Interactor = dummyServerInteractor; HestiaServerInteractor testInteractor = dummyServer.Interactor; Assert.IsTrue(testInteractor.NetworkHandler.Address == dummyServer.Interactor.NetworkHandler.Address); }
public void SetUpHestiaServerInteractor() { dummyNetworkHandler = new NetworkHandler(address); dummyServerInteractorLocal = new HestiaServerInteractor(dummyNetworkHandler); dummyServerInteractorRemote = new HestiaServerInteractor(dummyNetworkHandler, dummyServerId); Assert.IsNotNull(dummyServerInteractorLocal); Assert.IsNotNull(dummyServerInteractorRemote); }
public void SetUp() { string dummyAddress = "https://0.0.0.0:1000"; NetworkHandler networkHandler = new NetworkHandler(dummyAddress); serverInteractor = new HestiaServerInteractor(networkHandler); jsonDevice = JToken.Parse(jsonDeviceString); jsonDevices = JToken.Parse(jsonDevicesString); }
/// <summary> /// Deserializes a json object into a list of Device objects. /// </summary> /// <param name="devices"></param> /// <param name="serverInteractor"></param> /// <returns>A list of Device objects</returns> public List <Device> DeserializeDevices(JToken devices, HestiaServerInteractor serverInteractor) { List <Device> deviceList = new List <Device>(); foreach (JToken device in devices) { deviceList.Add(DeserializeDevice(device, serverInteractor)); } return(deviceList); }
public void SetAndGetServerInteractorTest() { Assert.AreEqual(serverInteractor, device.ServerInteractor); string newAddress = "https://2.2.2.2:2000"; NetworkHandler newNetworkHandler = new NetworkHandler(newAddress); HestiaServerInteractor newServerInteractor = new HestiaServerInteractor(newNetworkHandler); device.ServerInteractor = newServerInteractor; Assert.AreEqual(newServerInteractor, device.ServerInteractor); }
/// <summary> /// Checks if a hestia server exists. /// </summary> /// <param name="address"></param> /// <returns>True or false</returns> public static bool Check(string address) { HestiaServerInteractor interactor = new HestiaServerInteractor(new NetworkHandler(address)); try { interactor.GetDevices(); return(true); } catch (ServerInteractionException ex) { Console.WriteLine("No such server exists"); Console.WriteLine(ex); return(false); } }
/// <summary> /// Deserializes a json object into a HestiaServer object. /// </summary> /// <param name="jsonServer"></param> /// <param name="networkHandler"></param> /// <returns>A HestiaServer object</returns> public HestiaServer DeserializeServer(JToken jsonServer, NetworkHandler networkHandler) { string id = jsonServer.Value <string>("server_id"); string name = jsonServer.Value <string>("server_name"); string address = jsonServer.Value <string>("server_address"); int port = jsonServer.Value <int>("server_port"); HestiaServerInteractor interactor = new HestiaServerInteractor(networkHandler, id); HestiaServer server = new HestiaServer(false, interactor) { Id = id, Name = name, Address = address, Port = port }; return(server); }
/// <summary> /// Determine if the next screen should be loaded. Server discovery should always be loaded. /// The devices main screen should only be loaded if the Server is valid. /// </summary> /// <param name="segueIdentifier"></param> /// <param name="sender"></param> /// <returns></returns> public override bool ShouldPerformSegue(string segueIdentifier, NSObject sender) { if (segueIdentifier == strings.segueToServerDiscovery) { return(true); } bool validIp = false; try { string address = strings.defaultPrefix + newIP.Text + ":" + int.Parse(strings.defaultPort); validIp = PingServer.Check(address); } catch (Exception ex) { Console.WriteLine(ex); WarningMessage.Display("Could not connect to server", "Invalid server information", this); connectButton.Selected = false; return(false); } if (validIp) { Globals.ServerName = newServerName.Text; Globals.Address = strings.defaultPrefix + newIP.Text + ":" + strings.defaultPort; HestiaServerInteractor serverInteractor = new HestiaServerInteractor(new NetworkHandler(Globals.Address)); Globals.LocalServerinteractor = serverInteractor; userDefaults.SetString(newServerName.Text, strings.defaultsServerNameHestia); userDefaults.SetString(newIP.Text, strings.defaultsIpHestia); return(true); } WarningMessage.Display("Could not connect to server", "Invalid server information", this); connectButton.Selected = false; return(false); }
public void SetUpDevice() { ActivatorState activatorState = new ActivatorState(false, "bool"); string activatorId = "1234"; string activatorName = "bob"; int activatorRank = 0; activator = new Activator(activatorId, activatorName, activatorRank, activatorState); activators = new List <Activator> { activator }; networkHandler = new NetworkHandler(dummyAddress); serverInteractor = new HestiaServerInteractor(networkHandler); device = new Device(deviceId, deviceName, type, activators, serverInteractor); activator.Device = device; Assert.IsNotNull(device); }
public HestiaServer(bool selected, HestiaServerInteractor interactor) { Interactor = interactor; Selected = selected; }