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