static async Task Main(string[] args) { var messageDispatched = 0; //var resolver = new UnityDependencyResolver(); //using (new InformationLogEventWriter()) //{ // ApplicationConfiguration.RegisterDependencyResolver(() => resolver); // ApplicationConfiguration.RegisterServerInitialiserFactory(() => new ServerInitialiser()); // Program.InitializeServer(); //} var compressor = new DeflateCompressor(); var serialaser = new InMemorySerializer(compressor); var logger = new MockLogProvider(); var transport = new InMemoryQueueTransport(logger, () => new TransportConfiguration()); await transport.Start(); var transportManager = new TransportManager(transport, null); var dispatcher = new TransportDispatcher(transportManager ,serialaser);//resolver.Resolve<ITranspontDispatcher>(); var internalListener = new MessageListener(); await dispatcher.TransportManager.RegisterListener(internalListener); var tasks = new List<Task>(); for (var i = 0; i < 1; i++) { var batch = i; var task = Task.Factory.StartNew(async () => { for (var j = 0; j < 1; j++) { var command = new LogErrorCommand(Guid.NewGuid(), Guid.NewGuid()); Interlocked.Increment(ref messageDispatched); Console.WriteLine(String.Format("Dispatched message No: {0}, batch: {1}. Total number messages: {2}", j, batch, messageDispatched)); //Thread.Sleep(10); await dispatcher.SendMessage(command); } }); tasks.Add(task); } Console.ReadLine(); }
public async Task Serialised_with_cmpression_test() { //ARRANGE var compression = new DeflateCompressor(); var serialiser = new InMemorySerializer(compression); var command = new TestCommand(Guid.NewGuid(), Guid.NewGuid()); TestCommand commandDeserialised = null; for (var i = 0; i < 1000; i++) { command.Data.Add(i); } //ACT using (var ms = new MemoryStream()) { await serialiser.SerialiseAsync(ms, command); commandDeserialised = await serialiser.Deserialize(ms) as TestCommand; } //ASSERT Assert.AreEqual(command.Id, commandDeserialised.Id); Assert.AreEqual(command.CorrelationId, commandDeserialised.CorrelationId); Assert.True(command.Data.SequenceEqual(commandDeserialised.Data)); }