Beispiel #1
0
        public void Handle_ReserveBookCommandd_Default()
        {
            // arrange
            var key = MockBuilder.Key;

            var copy = CopyMock.Get(key);

            MockRepository.Add(copy);

            MockRepository.Commit();

            var command = ReserveBookCommandMock.Get(key);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var reservations = MockRepository.Query <Reservation>()
                               .Include(x => x.Loans)
                               .ThenInclude(x => x.Copy)
                               .ThenInclude(x => x.Book)
                               .Include(x => x.Member)
                               .ToList();
            var reservationExpected = ReservationMock.Get(key);

            reservations.Should().BeEquivalentToEntity(MockBuilder.List(reservationExpected));

            var publishReservationEventCommands        = Bus.GetAllSent <PublishReservationEventCommand>(ContextNames.Queue.Library);
            var PublishReservationEventCommandExpected = PublishReservationEventCommandMock.Get(key);

            PublishReservationEventCommandExpected.ReservationId = reservations[0].Id;
            publishReservationEventCommands.Should().BeEquivalentToMessage(MockBuilder.List(PublishReservationEventCommandExpected));
        }
Beispiel #2
0
        public void Handle_ReserveBookCommand_Member_Not_Exists()
        {
            // arrange
            var key = MockBuilder.Key;

            var copy = CopyMock.Get(key);

            MockRepository.Add(copy);

            MockRepository.Commit();

            var command = ReserveBookCommandMock.Get(key);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var members        = MockRepository.Query <Member>().ToList();
            var memberExpected = MemberMock.Get(key);

            members.Should().BeEquivalentToEntity(MockBuilder.List(memberExpected));

            var reservations = MockRepository.Query <Reservation>()
                               .Include(x => x.Loans)
                               .ThenInclude(x => x.Copy)
                               .ThenInclude(x => x.Book)
                               .Include(x => x.Member)
                               .ToList();
            var reservationExpected = ReservationMock.Get(key);

            reservationExpected.Member = memberExpected;
            reservations.Should().BeEquivalentToEntity(MockBuilder.List(reservationExpected));
        }
Beispiel #3
0
        public void Handle_UpdateBookCommand_Book_Not_Exists()
        {
            // arrange
            var key = MockBuilder.Key;

            var book = BookMock.Get(key);

            MockRepository.Add(book);

            MockRepository.Commit();

            var key2    = MockBuilder.Key;
            var command = UpdateBookCommandMock.Get(key2);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var books        = MockRepository.Query <Book>().ToList();
            var bookExpected = BookMock.Get(key);

            books.Should().BeEquivalentToEntity(MockBuilder.List(bookExpected));
        }
Beispiel #4
0
        public void Handle_CheckDueCommand_Reservation_Expire_Yesterday()
        {
            // arrange
            var key = MockBuilder.Key;

            var reservation = ReservationMock.Get(key);

            reservation.Loans[0].DueDate = MockBuilder.Date.AddDays(-1);

            MockRepository.Add(reservation);

            MockRepository.Commit();

            var command = CheckDueCommandMock.Get(key);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var expireReservationCommands        = Bus.GetAllSent <ExpireReservationCommand>(ContextNames.Queue.Library);
            var expireReservationCommandExpected = ExpireReservationCommandMock.Get(key);

            expireReservationCommands.Should().BeEquivalentToMessage(MockBuilder.List(expireReservationCommandExpected));
        }
Beispiel #5
0
        public void Handle_BookCommand_Book_Exist()
        {
            // arrange
            var key = MockBuilder.Key;

            var book = BookMock.Get(key);

            MockRepository.Add(book);

            MockRepository.Commit();

            var key2    = MockBuilder.Key;
            var command = SaveBookCommandMock.Get(key2);

            command.Title = book.Title;

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var books        = MockRepository.Query <Domain.Entities.Book>().ToList();
            var bookExpected = BookMock.Get(key2);

            bookExpected.Title = book.Title;
            books.Should().BeEquivalentToEntity(MockBuilder.List(bookExpected));

            var events        = Bus.GetAllPublished <UpdateBookEvent>(ContextNames.Exchange.Book);
            var eventExpected = UpdateBookEventMock.Get(key2);

            eventExpected.Title = book.Title;
            events.Should().BeEquivalentToMessage(MockBuilder.List(eventExpected));
        }
Beispiel #6
0
        public void Handle_BookCommand_With_Category_Not_Existing_Category()
        {
            // arrange
            var key = MockBuilder.Key;

            var command = SaveBookCommandMock.Create(key)
                          .Default()
                          .WithCategory()
                          .Build();

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var books = MockRepository.Query <Domain.Entities.Book>()
                        .Include(x => x.Categories)
                        .ThenInclude(x => x.Category)
                        .ToList();
            var bookExpected = BookMock.Create(key)
                               .Default()
                               .WithCategory(books[0].Categories[0].Category)
                               .Build();

            books.Should().BeEquivalentToEntity(MockBuilder.List(bookExpected));

            var events        = Bus.GetAllPublished <UpdateBookEvent>(ContextNames.Exchange.Book);
            var eventExpected = UpdateBookEventMock.Get(key);

            events.Should().BeEquivalentToMessage(MockBuilder.List(eventExpected));
        }
Beispiel #7
0
        public void List_Parameters_Null()
        {
            // arrange
            var parameters = (string[])null;

            // act
            var values = MockBuilder.List(parameters);

            // assert
            values.Should().BeEmpty();
        }
Beispiel #8
0
        public void List_Value_Null()
        {
            // arrange
            var value = (string)null;

            // act
            var values = MockBuilder.List(value);

            // assert
            values.Should().NotBeEmpty();
            values.Should().HaveCount(1);
            values.Should().Contain(value);
        }
Beispiel #9
0
        public void List_Multiples()
        {
            // arrange
            var value1 = "A";
            var value2 = "B";
            var value3 = "C";

            // act
            var values = MockBuilder.List(value1, value2, value3);

            // assert
            values.Should().NotBeEmpty();
            values.Should().HaveCount(3);
            values.Should().ContainInOrder(value1, value2, value3);
        }
Beispiel #10
0
        public void Handle_PurchaseBookCommand_Update()
        {
            // arrange
            var key = MockBuilder.Key;

            var order = OrderMock.Get(key);

            MockRepository.Add(order);

            MockRepository.Commit();

            var key2    = MockBuilder.Key;
            var command = PurchaseBookCommandMock.Get(key2);

            command.Number = order.Number;

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var orders = MockRepository.Query <Order>()
                         .Include(x => x.Items)
                         .Include(x => x.Customer)
                         .ToList();
            var orderExpected = OrderMock.Create(key)
                                .BaseOrder()
                                .WithItem(key2)
                                .Build();

            orderExpected.Number = order.Number;
            orders.Should().BeEquivalentToEntity(MockBuilder.List(orderExpected));

            var publishShippingEventCommands        = Bus.GetAllSent <PublishShippingEventCommand>(ContextNames.Queue.Bookstore);
            var publishShippingEventCommandExpected = PublishShippingEventCommandMock.Get(key);

            publishShippingEventCommandExpected.OrderId = orders[0].Id;
            publishShippingEventCommands.Should().BeEquivalentToMessage(MockBuilder.List(publishShippingEventCommandExpected));

            var dropCopyNumberEvents        = Bus.GetAllPublished <DropCopyNumberEvent>(ContextNames.Exchange.Bookstore);
            var dropCopyNumberEventExpected = DropCopyNumberEventMock.Get(key2);

            dropCopyNumberEvents.Should().BeEquivalentToMessage(MockBuilder.List(dropCopyNumberEventExpected));
        }
Beispiel #11
0
        public void Handle_ListBookFilteringQuery_Default()
        {
            // arrange
            var key = MockBuilder.Key;

            var book = BookMock.Get(key);

            MockRepository.Add(book);

            MockRepository.Commit();

            var query = ListBookFilteringQueryMock.Get(key);

            // act
            var dto = Handle(query);

            dto.Should().NotBeNull();

            var dtoExpected = BookDtoMock.Get(key);

            dto.Should().BeEquivalentTo(MockBuilder.List(dtoExpected).ToPagedResponse());
        }
Beispiel #12
0
        public void Handle_PublishReservationEventCommandd_Default()
        {
            // arrange
            var key = MockBuilder.Key;

            var reservation = ReservationMock.Get(key);

            MockRepository.Add(reservation);

            MockRepository.Commit();

            var command = PublishReservationEventCommandMock.Get(key);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var events        = Bus.GetAllPublished <CreateReservationEvent>(ContextNames.Exchange.Library);
            var eventExpected = CreateReservationEventMock.Get(key);

            events.Should().BeEquivalentToMessage(MockBuilder.List(eventExpected));
        }
Beispiel #13
0
        public void Handle_PublishShippingEventCommand_Default()
        {
            // arrange
            var key = MockBuilder.Key;

            var order = OrderMock.Get(key);

            MockRepository.Add(order);

            MockRepository.Commit();

            var command = PublishShippingEventCommandMock.Get(key);

            // act
            var result = Handle(command);

            // assert
            result.Should().BeTrue();

            var events        = Bus.GetAllPublished <CreateShippingEvent>(ContextNames.Exchange.Bookstore);
            var eventExpected = CreateShippingEventMock.Get(key);

            events.Should().BeEquivalentToMessage(MockBuilder.List(eventExpected));
        }