public void ShouldSendRentalViewModelMessageWithContinueRentalPropertyIfDriverHasActiveRental()
        {
            //assign
            var driverId        = Guid.NewGuid();
            var driverViewModel = new DriverViewModel()
            {
                Id = driverId
            };
            var activeRentalDto = new RentalDTO();

            _rentalServiceMock.GetActiveRentalForDriver(driverId).Returns(activeRentalDto);

            var activeRentalViewModel = new RentalViewModel();

            _rentalViewModelMapperMock.Map(activeRentalDto).Returns(activeRentalViewModel);

            //act
            var sut = new RentCarViewModel(_carServiceMock, _rentalServiceMock, _carViewModelMapperMock, _rentalViewModelMapperMock, _messengerServiceMock);

            sut.AssignLoggedInDriver(driverViewModel);

            //assert
            _messengerServiceMock.Received().Send(Arg.Is <RentalViewModelMessage>(message => message.RentalViewModel == activeRentalViewModel && message.MessageType == RentalViewModelMessageType.ContinueRental));
            _messengerServiceMock.Received().Send(Arg.Is <NotificationMessage>(message => message.Notification == "Start Car Rental"));
        }
        public void ShouldUpdatePropertiesAccordinglyToDriverStatusWhenAssigningLoggedInDriver(DriverStatus driverStatus, string driverBannedError, bool isCarListEnabled)
        {
            var driverViewModel = new DriverViewModel()
            {
                DriverStatus = driverStatus
            };
            var sut = new RentCarViewModel(_carServiceMock, _rentalServiceMock, _carViewModelMapperMock,
                                           _rentalViewModelMapperMock, _messengerServiceMock);

            sut.AssignLoggedInDriver(driverViewModel);
            Assert.AreEqual(driverBannedError, sut.DriverBannedError);
            Assert.AreEqual(sut.IsCarListEnabled, isCarListEnabled);
        }
        public void ShouldNotSendRentalViewModelMessageWithContinueRentalPropertyIfDriverDoesntHaveActiveRental()
        {
            var driverId        = Guid.NewGuid();
            var driverViewModel = new DriverViewModel
            {
                Id = driverId
            };
            var sut = new RentCarViewModel(_carServiceMock, _rentalServiceMock, _carViewModelMapperMock,
                                           _rentalViewModelMapperMock, _messengerServiceMock);

            sut.AssignLoggedInDriver(driverViewModel);
            _messengerServiceMock.DidNotReceive().Send(Arg.Any <RentalViewModelMessage>());
            _messengerServiceMock.DidNotReceive().Send(Arg.Is <NotificationMessage>(message => message.Notification == "Start Car Rental"));
        }