public void RepackDataTest_InvalidDataSet(int desc) { Worker worker = new Worker(); Description description = new Description(); //struct Item item1 = new Item(); //struct description.dataSet = desc; description.id = 1; description.items = new List <Item>(); description.items.Add(item1); description.items.Add(item1); WorkerProperty workerProperty = new WorkerProperty();//struct workerProperty.code = "CODE_ANALOG"; workerProperty.workerValue = 10; bool actual = worker.RepackData(description, workerProperty); Assert.AreEqual(false, actual); }
public void Deadband() { List <CollectionDescription> test = new List <CollectionDescription>(); WorkerProperty wp = new WorkerProperty(Code.CODE_ANALOG, 1000); WorkerProperty wp1 = new WorkerProperty(Code.CODE_ANALOG, 1500); WorkerProperty wp2 = new WorkerProperty(Code.CODE_DIGITAL, 2000); HistoricalCollection hc = new HistoricalCollection(); hc.m_WorkerProperty[0] = wp; HistoricalCollection hc1 = new HistoricalCollection(); hc1.m_WorkerProperty[0] = wp1; HistoricalCollection hc2 = new HistoricalCollection(); hc2.m_WorkerProperty[0] = wp2; test.Add(new CollectionDescription() { Dataset = 1, m_HistoricalCollection = hc }); test.Add(new CollectionDescription() { Dataset = 1, m_HistoricalCollection = hc1 }); test.Add(new CollectionDescription() { Dataset = 1, m_HistoricalCollection = hc2 }); proxyMock.Deserialization(1).ReturnsForAnyArgs(test); Worker.Worker.proxy = proxyMock; bool resultAnalog = worker.ReceiveFromLoadBalancer(Code.CODE_ANALOG, 1000); Assert.IsTrue(resultAnalog); }
public Worker(JsonPopulator populator, Utf8JsonReader reader, object obj, JsonSerializerOptions options) { _objects.Push(obj); WorkerProperty prop; WorkerProperty peek; while (reader.Read()) { switch (reader.TokenType) { case JsonTokenType.PropertyName: prop = new WorkerProperty(); prop.PropertyName = Encoding.UTF8.GetString(reader.ValueSpan); _properties.Push(prop); break; case JsonTokenType.StartObject: case JsonTokenType.StartArray: if (_properties.Count > 0) { object child = null; var parent = _objects.Peek(); PropertyInfo pi = null; if (parent != null) { pi = populator.GetProperty(ref reader, options, parent, _properties.Peek().PropertyName); if (pi != null) { child = pi.GetValue(parent); // mimic ObjectCreationHandling.Auto if (child == null && pi.CanWrite) { if (reader.TokenType == JsonTokenType.StartArray) { if (!typeof(IList).IsAssignableFrom(pi.PropertyType)) { break; // don't create if we can't handle it } } if (reader.TokenType == JsonTokenType.StartArray && pi.PropertyType.IsArray) { child = Activator.CreateInstance(typeof(List <>).MakeGenericType(pi.PropertyType.GetElementType())); // we can't add to arrays... } else { child = populator.CreateInstance(ref reader, pi.PropertyType); if (child != null) { pi.SetValue(parent, child); } } } } } if (reader.TokenType == JsonTokenType.StartObject) { _objects.Push(child); } else if (child != null) // StartArray { peek = _properties.Peek(); peek.IsArray = pi.PropertyType.IsArray; peek.List = (IList)child; peek.ListPropertyType = GetListElementType(child.GetType()); peek.ArrayPropertyInfo = pi; } } break; case JsonTokenType.EndObject: _objects.Pop(); if (_properties.Count > 0) { _properties.Pop(); } break; case JsonTokenType.EndArray: if (_properties.Count > 0) { prop = _properties.Pop(); if (prop.IsArray) { var array = Array.CreateInstance(GetListElementType(prop.ArrayPropertyInfo.PropertyType), prop.List.Count); // array is finished, convert list into a real array prop.List.CopyTo(array, 0); prop.ArrayPropertyInfo.SetValue(_objects.Peek(), array); } } break; case JsonTokenType.False: case JsonTokenType.Null: case JsonTokenType.Number: case JsonTokenType.String: case JsonTokenType.True: peek = _properties.Peek(); if (peek.List != null) { if (populator.TryReadPropertyValue(ref reader, options, peek.ListPropertyType, out var item)) { peek.List.Add(item); } break; } prop = _properties.Pop(); var current = _objects.Peek(); if (current != null) { populator.SetPropertyValue(ref reader, options, current, prop.PropertyName); } break; } } }
public bool ReceiveFromLoadBalancer(Code code, int value) { Console.WriteLine("Sa writera ja stigao kod {0} i vrednost {1}", code.ToString(), value); WorkerProperty wp = new WorkerProperty(); m_CollectionDescription = new CollectionDescription(); m_CollectionDescription.ID = new Random().Next(1000); //napraviti da se ne ponavlja wp.Code = code; wp.WorkerValue = value; m_CollectionDescription.m_HistoricalCollection.m_WorkerProperty[0] = wp; switch (code) { // naparaviti enum za dataset case Code.CODE_ANALOG: m_CollectionDescription.Dataset = 1; break; case Code.CODE_CONSUMER: m_CollectionDescription.Dataset = 4; break; case Code.CODE_CUSTOM: m_CollectionDescription.Dataset = 2; break; case Code.CODE_DIGITAL: m_CollectionDescription.Dataset = 1; break; case Code.CODE_LIMITSET: m_CollectionDescription.Dataset = 2; break; case Code.CODE_MULTIPLENODE: m_CollectionDescription.Dataset = 3; break; case Code.CODE_SINGLENOE: m_CollectionDescription.Dataset = 3; break; case Code.CODE_SOURCE: m_CollectionDescription.Dataset = 4; break; } if (CompareCodeValue(m_CollectionDescription.m_HistoricalCollection.m_WorkerProperty[0].Code, m_CollectionDescription.Dataset)) { Logger.Log("\nReceiveFromLoadBalancer in Worker converted received data to CollectionDescription.\n"); Logger.Log("CollectionDescription: " + m_CollectionDescription + "\n"); Serialization(m_CollectionDescription); } else { Logger.Log("Validation of DataSet in Worker did not pass.\n"); return(false); } return(true); }
public void SetupTest() { wp = new WorkerProperty(); }