コード例 #1
0
        public ManagementTests()
        {
            _client = new MessageBrokerClient(TestAssembly.ClientConfiguration, TestAssembly.GetRestClientConfiguration());

            ResetDatabase()
            .GetAwaiter()
            .GetResult();
        }
コード例 #2
0
 private void UnregisterStudent(StudentDto dto)
 {
     ApiClient.Unregister(dto.Id).ConfigureAwait(false).GetAwaiter().GetResult();
     using (var mbClient = new MessageBrokerClient())
     {
         mbClient.Send($"Student was unregistered: {dto.Name}");
     }
     Search();
 }
コード例 #3
0
        public QueuePerformanceTest()
        {
            _client  = new MessageBrokerClient(TestAssembly.ClientConfiguration, TestAssembly.GetRestClientConfiguration());
            _utility = new Utility(_client);

            ResetDatabase()
            .GetAwaiter()
            .GetResult();
        }
コード例 #4
0
        private void EditPersonalInfo(StudentDto dto)
        {
            var viewModel = new EditPersonalInfoViewModel(dto.Id, dto.Name, dto.Email);

            _dialogService.ShowDialog(viewModel);
            using (var mbClient = new MessageBrokerClient())
            {
                mbClient.Send($"Student was edited: {dto.Name}");
            }
            Search();
        }
コード例 #5
0
        public MessageBrokerClientTests()
        {
            _client = new MessageBrokerClient <Payload>(
                TestAssembly.ClientConfiguration.BaseUri,
                _agentName,
                _queueName,
                TestAssembly.GetRestClientConfiguration());

            _utility = new Utility(_client.Client);

            ResetDatabase()
            .GetAwaiter()
            .GetResult();
        }
コード例 #6
0
        public async Task Given_PutOrderPlacedCommand_Which_Should_Publish_A_PutOrderPlacedEvent_Expect_OrderResponse_With_OrderPlacedEvent_Published()
        {
            // Arrange
            const string topic          = "OrderPlacedUpdated";
            const string subscriptionId = "OrderPlacedUpdated_IntegrationTest";
            var          command        = new PutOrderPlacedCommand(1, 5, 2);
            var          order          = new Order
            {
                Id       = 1,
                Name     = "product zero one",
                Quantity = 10
            };

            Factory.Seed <Startup, MicroserviceDbContext>(db =>
            {
                db.Clear();
                db.Orders.Add(order);
            });

            // Act
            var response = await Client.PutAsJsonAsync($"{GetBaseRoute()}/place", command);

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            var result = response.Content.Deserialize <OrderResponse>().Result;

            var subscriptionResponse = await MessageBrokerClient.Subscribe <OrderPlacedEvent>(
                topic,
                subscriptionId,
                AssertCallback,
                c => c.UseBasicQos());

            // Assert PutOrderPlaced Response
            Assert.That(result.Quantity, Is.EqualTo(8));
            Assert.That(result.Id, Is.EqualTo(order.Id));
            StringAssert.AreEqualIgnoringCase(order.Name, result.Name);

            // Assert Messagebus OrderCreatedEvent
            Task AssertCallback(OrderPlacedEvent orderPlacedEvent)
            {
                var tcs = new TaskCompletionSource <OrderPlacedEvent>();

                Assert.That(orderPlacedEvent.QuantityBeforeReduction, Is.EqualTo(order.Quantity));
                Assert.That(orderPlacedEvent.Quantity, Is.EqualTo(result.Quantity));
                Assert.That(result.Id, Is.EqualTo(order.Id));
                StringAssert.AreEqualIgnoringCase(order.Name, result.Name);

                tcs.SetResult(orderPlacedEvent);
                return(tcs.Task);
            }
        }
コード例 #7
0
        public async Task Given_PatchOrder_Which_Should_Publish_OrderUpdatedEvent_Expect_Updated_OrderResponse_With_UpdatedEvent_Published()
        {
            // Arrange
            const string topic            = "Order";
            const string subscriptionId   = "OrderUpdated";
            var          originationOrder = new Order
            {
                Id   = 1,
                Name = "product zero one"
            };

            var patchDoc = new JsonPatchDocument <OrderResponse>();

            patchDoc.Replace(x => x.Name, "zero one");

            var operations = patchDoc.Operations.ToList();

            Factory.Seed <Startup, MicroserviceDbContext>(db =>
            {
                db.Clear();
                db.Orders.Add(originationOrder);
            });

            // Act
            var response = await Client.PatchAsJsonAsync($"{GetBaseRoute()}/update/{originationOrder.Id}/77", patchDoc);

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
            var result = response.Content.Deserialize <OrderResponse>().Result;
            var subscriptionResponse = await MessageBrokerClient.Subscribe <OrderUpdatedEvent>(
                topic,
                subscriptionId,
                AssertCallback,
                c => c.UseBasicQos());

            // Assert Patch Operation
            StringAssert.AreEqualIgnoringCase($"PROD: zero one", result.Name);

            // Assert OrderUpdatedEvent
            Task AssertCallback(OrderUpdatedEvent updatedEvent)
            {
                var tcs = new TaskCompletionSource <OrderUpdatedEvent>();

                StringAssert.AreEqualIgnoringCase($"PROD: zero one", updatedEvent.Name);
                Assert.That(updatedEvent.Quantity, Is.EqualTo(result.Quantity));
                Assert.That(updatedEvent.Id, Is.EqualTo(result.Id));

                tcs.SetResult(updatedEvent);
                return(tcs.Task);
            }
        }
コード例 #8
0
        public async Task Given_CreateOrderCommand_Which_Should_Publish_A_OrderCreatedEvent_Expect_OrderResponse_With_CreatedEvent_Published()
        {
            // Arrange
            const string topic          = "OrderCreated";
            const string subscriptionId = "OrderCreated_IntegrationTest";
            var          createCommand  = new CreateOrderCommand("Keyboard", 5);

            Factory.Seed <Startup, MicroserviceDbContext>(db =>
            {
                db.Clear();
            });

            // Act
            var response = await Client.PostAsJsonAsync(GetBaseRoute(), createCommand);

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created));
            var result = response.Content.Deserialize <OrderResponse>().Result;
            var subscriptionResponse = await MessageBrokerClient.Subscribe <OrderCreatedEvent>(
                topic,
                subscriptionId,
                AssertCallback,
                c => c.UseBasicQos());

            // Assert Create Response
            Assert.That(result.Quantity, Is.EqualTo(createCommand.Quantity));
            StringAssert.AreEqualIgnoringCase(createCommand.Name, result.Name);

            // Assert Messagebus OrderCreatedEvent
            Task AssertCallback(OrderCreatedEvent orderCreatedEvent)
            {
                var tcs = new TaskCompletionSource <OrderCreatedEvent>();

                StringAssert.AreEqualIgnoringCase(orderCreatedEvent.Name, result.Name);
                Assert.That(orderCreatedEvent.Quantity, Is.EqualTo(createCommand.Quantity));
                Assert.That(orderCreatedEvent.Id, Is.GreaterThan(0));
                tcs.SetResult(orderCreatedEvent);
                return(tcs.Task);
            }
        }