public void Setup()
 {
     dataToSerialze     = CreateManager(N);
     _jsonSerializer    = new Archetypical.Software.Spigot.Serializers.Json.SpigotSerializer();
     _protoSerializer   = new Archetypical.Software.Spigot.Serializers.Protobuf.SpigotSerializer();
     _msgPackSerializer = new Archetypical.Software.Spigot.Serializers.MsgPack.SpigotSerializer();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Allows for the configuration of the Spigot via an instance of <see cref="ISpigotBuilder"/>
        /// </summary>
        internal void Setup(ISpigotBuilder builder)
        {
            if (_initialized)
            {
                _logger.LogInformation("Unbinding previous spigot configuration for new settings");
                foreach (var stream in Streams)
                {
                    stream.DataArrived -= Spigot_DataArrived;
                }
                Streams            = null;
                AfterReceive       = null;
                BeforeSend         = null;
                InstanceIdentifier = Guid.Empty;
                ApplicationName    = string.Empty;
                Resilience         = null;
            }

            AfterReceive       = builder.AfterReceive;
            BeforeSend         = builder.BeforeSend;
            InstanceIdentifier = builder.InstanceIdentifier;
            ApplicationName    = builder.ApplicationName;
            Resilience         = builder.Resilience ?? new Resilience();
            _initialized       = true;
            builder.Services.AddSingleton(this);
            var provider = builder.Services.BuildServiceProvider();

            Streams    = provider.GetServices <ISpigotStream>() ?? new[] { new LocalStream() };
            Serializer = provider.GetService <ISpigotSerializer>() ?? new DefaultJsonSerializer();
            foreach (var stream in Streams)
            {
                stream.DataArrived += Spigot_DataArrived;
            }
            foreach (var knobType in builder.Knobs)
            {
                var knob = provider.GetService(knobType) as Knob;
                builder.Services.AddSingleton(knob);
                knob?.Register();
            }
        }
Exemplo n.º 3
0
        private void Test_Serializer(ISpigotSerializer serializer)
        {
            var expected = new Manager()
            {
                Name       = "John Doe",
                Id         = 1,
                Department = "Development",
                Employees  = new List <Employee>()
            };

            expected.Employees.Add(new Employee
            {
                Name    = "Jane Doe",
                Id      = 2,
                Manager = expected
            });
            Assert.Equal(expected, expected);
            var bites = serializer.Serialize(expected);

            var actual = serializer.Deserialize <Manager>(bites);

            Assert.StrictEqual(expected, actual);
        }