Esempio n. 1
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));
        }
Esempio n. 2
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));
        }
        public void GetByFilterAsync_Reservation_Filter_Number()
        {
            var keys = new string[]
            {
                FakeHelper.Key,
                FakeHelper.Key
            };

            MockRepository.Add(ReservationMock.Get(keys[0]));
            MockRepository.Add(ReservationMock.Get(keys[1]));

            var pagination = PagedRequestMock.Create(ReservationFilterPayloadMock.Get(keys[0]));

            pagination.Filter.Number = Fake.GetReservationNumber(keys[0]);

            var proxy = GetByFilterAsync(pagination);

            proxy.Should().NotBeNull();

            var proxy1 = ReservationProxyMock.Get(keys[0]);

            proxy1.MemberId = MemberMock.Get(keys[0]).UserId;

            var pagedProxyExpected = PagedResponseMock.Create(proxy1);

            proxy.Should().BeEquivalentToModel(pagedProxyExpected);
        }
        public void RequestAsync_Reservation_Insert_BookNotExists()
        {
            var key = FakeHelper.Key;

            var message = ReservationMessageMock.Get(key);

            var dto = RequestAsync(message);

            dto.Should().NotBeNull();

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.GetByReservation(key);

            expected.Id            = entity.Id;
            expected.Member.Id     = entity.Member.Id;
            expected.Loans[0].Id   = entity.Loans[0].Id;
            expected.Loans[0].Book = null;
            expected.Loans[0].Copy = null;
            entity.Should().BeEquivalentToEntity(expected);

            var dtoExpected = ReservationDtoMessageMock.Get(key);

            dtoExpected.ReservationId = entity.Id;
            dto.Should().BeEquivalentToMessage(dtoExpected);
        }
        public void RequestAsync_Reservation_Insert_Valid()
        {
            var key  = FakeHelper.Key;
            var book = BookMock.Get(key);
            var copy = CopyMock.Get(key);

            MockRepository.Add(book);
            MockRepository.Add(copy);

            var message = ReservationMessageMock.Get(key);

            var dto = RequestAsync(message);

            dto.Should().NotBeNull();

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.GetByReservation(key);

            expected.Id          = entity.Id;
            expected.Member.Id   = entity.Member.Id;
            expected.Loans[0].Id = entity.Loans[0].Id;
            entity.Should().BeEquivalentToEntity(expected);

            var dtoExpected = ReservationDtoMessageMock.Get(key);

            dtoExpected.ReservationId = entity.Id;
            dto.Should().BeEquivalentToMessage(dtoExpected);

            //var profillingExpected = ProfilingEntityMock.Get("", "");
        }
        public void RequestAsync_Reservation_Update_Member_NotAccepted()
        {
            var key   = FakeHelper.Key;
            var order = ReservationMock.GetByReservation(key);

            MockRepository.Add(order);

            var message = ReservationMessageMock.Get(key);
            var key2    = FakeHelper.Key;

            message.MemberName = Fake.GetMemberName(key2);
            message.MemberId   = FakeHelper.GetId(key2).ToString();

            var dto = RequestAsync(message);

            dto.Should().NotBeNull();

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.GetByReservation(key);

            expected.UpdatedAt   = DateTime.UtcNow;
            expected.Loans[0].Id = entity.Loans[0].Id;
            expected.Member.Id   = entity.Member.Id;

            entity.Should().BeEquivalentToEntity(expected);

            var dtoExpected = ReservationDtoMessageMock.Get(key);

            dto.Should().BeEquivalentToMessage(dtoExpected);
        }
        public void RequestAsync_Reservation_Update_Valid()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.GetByReservation(key);

            MockRepository.Add(reservation);

            var message = ReservationMessageMock.Get(key);

            var dto = RequestAsync(message);

            dto.Should().NotBeNull();

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.GetByReservation(key);

            expected.UpdatedAt   = DateTime.UtcNow;
            expected.Member.Id   = entity.Member.Id;
            expected.Loans[0].Id = entity.Loans[0].Id;
            entity.Should().BeEquivalentToEntity(expected);

            var dtoExpected = ReservationDtoMessageMock.Get(key);

            dto.Should().BeEquivalentToMessage(dtoExpected);
        }
Esempio n. 8
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));
        }
Esempio n. 9
0
        public void Handle_CheckDueCommand_Reservation_Expire_Tomorrow()
        {
            // 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);

            expireReservationCommands.Should().BeEmpty();
        }
        public void CreateReservationAsync_Dto_Valid()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.Get(key);

            MockRepository.Add(reservation);

            var message = ReservationDtoMessageMock.Get(key);

            var dto = CreateReservationAsync(message);

            dto.Should().NotBeNull();

            var dtoExpected = ReservationDtoMock.Get(key);

            dto.Should().BeEquivalentToMessage(dtoExpected);
        }
        public void ExpireAsync_Reservation_Valid()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.Get(key);

            MockRepository.Add(reservation);

            var message = ReservationExpiredMessageMock.Get(key);

            ExpireAsync(message);

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.Get(key);

            expected.Status = StatusReservation.Expired;
            entity.Should().BeEquivalentToEntity(expected);
        }
        public void CheckDueAsync_Reservation_DueDate_Major()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.Get(key);

            reservation.Loans[0].DueDate = DateTime.UtcNow.Date.AddDays(1).AddMinutes(1);

            MockRepository.Add(reservation);

            var dto = CheckDueAsync();

            dto.Should().BeNull();

            var entity   = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));
            var expected = ReservationMock.Get(key);

            expected.Loans[0].DueDate = reservation.Loans[0].DueDate;
            entity.Should().BeEquivalentToEntity(expected);
        }
        public void ReturnAsync_Reservation_Valid()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.Get(key);

            MockRepository.Add(reservation);

            var message = ReservationReturnMessageMock.Get(key);

            ReturnAsync(message);

            var entity = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));

            var expected = ReservationMock.Get(key);

            expected.Status = StatusReservation.Deliveried;
            expected.Loans[0].ReturnDate = Fake.GetReturnDate(key);
            entity.Should().BeEquivalentToEntity(expected);
        }
        public void CheckDueAsync_Reservation_Valid()
        {
            var key         = FakeHelper.Key;
            var reservation = ReservationMock.Get(key);

            reservation.Loans[0].DueDate = DateTime.UtcNow;

            MockRepository.Add(reservation);

            var dto = CheckDueAsync();

            dto.Should().NotBeNull();

            var entity   = Db.Reservations.FirstOrDefault(x => x.Number == Fake.GetReservationNumber(key));
            var expected = ReservationMock.Get(key);

            expected.Loans[0].DueDate = reservation.Loans[0].DueDate;
            entity.Should().BeEquivalentToEntity(expected);

            var dtoExpected = ReservationExpiredMessageMock.Get(key);

            dto.Should().BeEquivalentToMessage(dtoExpected);
        }
Esempio n. 15
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));
        }