public async Task WithServiceBusRouting_IgnoreMissingMembers_ResultsInDifferentMessageHandler(AdditionalMemberHandling additionalMemberHandling) { // Arrange var services = new ServiceCollection(); var collection = new ServiceBusMessageHandlerCollection(services); var messageHandlerV1 = new OrderV1AzureServiceBusMessageHandler(); var messageHandlerV2 = new OrderV2AzureServiceBusMessageHandler(); collection.WithServiceBusMessageHandler <OrderV1AzureServiceBusMessageHandler, Order>(provider => messageHandlerV1) .WithServiceBusMessageHandler <OrderV2AzureServiceBusMessageHandler, OrderV2>(provider => messageHandlerV2); // Act services.AddServiceBusMessageRouting(options => options.Deserialization.AdditionalMembers = additionalMemberHandling); // Assert IServiceProvider serviceProvider = services.BuildServiceProvider(); var router = serviceProvider.GetRequiredService <IAzureServiceBusMessageRouter>(); OrderV2 orderV2 = OrderV2Generator.Generate(); ServiceBusReceivedMessage message = orderV2.AsServiceBusReceivedMessage(); AzureServiceBusMessageContext context = AzureServiceBusMessageContextFactory.Generate(); var correlationInfo = new MessageCorrelationInfo("operation-id", "transaction-id"); await router.RouteMessageAsync(message, context, correlationInfo, CancellationToken.None); Assert.Equal(additionalMemberHandling is AdditionalMemberHandling.Error, messageHandlerV2.IsProcessed); Assert.Equal(additionalMemberHandling is AdditionalMemberHandling.Ignore, messageHandlerV1.IsProcessed); }
public async Task WithMessageRouting_WithIgnoreMissingMembers_GoesThroughDifferentMessageHandler(AdditionalMemberHandling additionalMemberHandling) { // Arrange var services = new ServiceCollection(); var collection = new MessageHandlerCollection(services); var messageHandlerV1 = new OrderV1MessageHandler(); var messageHandlerV2 = new OrderV2MessageHandler(); collection.WithMessageHandler <OrderV1MessageHandler, Order>(provider => messageHandlerV1) .WithMessageHandler <OrderV2MessageHandler, OrderV2>(provider => messageHandlerV2); // Act services.AddMessageRouting(options => options.Deserialization.AdditionalMembers = additionalMemberHandling); // Assert IServiceProvider serviceProvider = services.BuildServiceProvider(); var router = serviceProvider.GetRequiredService <IMessageRouter>(); OrderV2 order = OrderV2Generator.Generate(); var context = new MessageContext("message-id", new Dictionary <string, object>()); var correlationInfo = new MessageCorrelationInfo("operation-id", "transaction-id"); string json = JsonConvert.SerializeObject(order); await router.RouteMessageAsync(json, context, correlationInfo, CancellationToken.None); Assert.Equal(additionalMemberHandling is AdditionalMemberHandling.Ignore, messageHandlerV1.IsProcessed); Assert.Equal(additionalMemberHandling is AdditionalMemberHandling.Error, messageHandlerV2.IsProcessed); }
public void TestCompareOrderVsOrderV2_Example3() { // Arrange List <double> itemPriceList = new List <double> { 80.0, 115.0, 220.0, 12.0, 20.0, 75.0, 44.0, 15.0, 49.0 }; Order theOrder = new Order(itemPriceList); OrderV2 theOrderV2 = new OrderV2(itemPriceList); double expectedResult = theOrder.TotalOrderPrice; // Act double result = theOrderV2.TotalOrderPrice; // Assert Assert.AreEqual(expectedResult, result, 0.01); }