Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
                }
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public void SetupTest()
 {
     wp = new WorkerProperty();
 }