コード例 #1
0
        public async Task AddReservationTest()
        {
            var stateManager = new MockReliableStateManager();
            var testShowDate = new DateTime(2012, 10, 10);
            var showService  = new MockShowService
            {
                TryAddReservationToShowFunc = reservationItem => Task.FromResult(true),
                GetByIdFunc = id => Task.FromResult(new ShowItem
                {
                    Id           = id,
                    ShowDateTime = testShowDate
                })
            };
            var showServiceFactory = new MockShowServiceFactory(showService);

            var reservationService = new ReservationService(TestUtils.StatefulServiceContext, stateManager,
                                                            showServiceFactory);
            var item = new Domain.ReservationItem
            {
                ShowItemId = new ItemId(Guid.NewGuid()),
            };

            var result = await reservationService.GetByIdAsync(item.Id);

            Assert.AreEqual(null, result);

            var addResult = await reservationService.AddAsync(item);

            Assert.IsTrue(addResult);

            result = await reservationService.GetByIdAsync(item.Id);

            Assert.AreEqual(item, result);
            Assert.IsTrue(item.ReservationDateTime.HasValue);
        }
        public async Task AddAsync_WhenCalledWithExisting_ShouldUpdate()
        {
            int existingId = 0;

            using (var context = new ApplicationContext(options))
            {
                var reservation = context.Add(
                    new Reservation {
                    GuestNumber = 1, GuestNames = "Guest1"
                }
                    );
                await context.SaveChangesAsync();

                existingId = reservation.Entity.ReservationId;
            }

            using (var context = new ApplicationContext(options))
            {
                var reservationService = new ReservationService(context, localizerMock.Object, emailServiceMock.Object);

                var reservation = await reservationService.AddAsync(
                    new Reservation { ReservationId = existingId, GuestNumber = 2, GuestNames = "Guest1, Guest2" }
                    );

                Assert.True(context.Reservations.Contains(reservation));
                Assert.Equal(2, context.Reservations.Find(reservation.ReservationId).GuestNumber);
                Assert.Equal("Guest1, Guest2", context.Reservations.Find(reservation.ReservationId).GuestNames);
            }
        }
コード例 #3
0
        public async Task GetByTimeAsync()
        {
            var stateManager = new MockReliableStateManager();
            var showService  = new MockShowService
            {
                TryAddReservationToShowFunc = reservationItem => Task.FromResult(true),
                GetByIdFunc = id => Task.FromResult(new ShowItem {
                    Id = id, ShowDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
                })
            };
            var showServiceFactory = new MockShowServiceFactory(showService);
            var reservationService = new ReservationService(TestUtils.StatefulServiceContext, stateManager,
                                                            showServiceFactory);
            var testMovieName = "testMovie";
            var item          = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = testMovieName,
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            var item2 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = testMovieName,
                ReservationDateTime = new DateTime(2010, 10, 11, 10, 10, 10)
            };
            var item3 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = "anotherMovie",
                ReservationDateTime = new DateTime(2010, 10, 3, 10, 10, 10)
            };
            await reservationService.AddAsync(item);

            await reservationService.AddAsync(item2);

            await reservationService.AddAsync(item3);


            var result = await reservationService.GetByTimeAsync(new TimeRange(
                                                                     new DateTime(2010, 10, 9, 10, 10, 10),
                                                                     new DateTime(2010, 10, 12, 10, 10, 10)));

            Assert.IsTrue(result.Contains(item));
            Assert.IsTrue(result.Contains(item2));
            Assert.IsFalse(result.Contains(item3));
        }
コード例 #4
0
        public void AddReservationCorrectly()
        {
            var dbContext = new DbContextOptionsBuilder <ApplicationDbContext>()
                            .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var repoRelaxProgram = new EfDeletableEntityRepository <RelaxProgram>(new ApplicationDbContext(dbContext.Options));

            repoRelaxProgram.SaveChangesAsync().GetAwaiter().GetResult();

            var repoPayment = new EfDeletableEntityRepository <Payment>(new ApplicationDbContext(dbContext.Options));

            repoPayment.SaveChangesAsync().GetAwaiter().GetResult();

            var repoPeriod = new EfDeletableEntityRepository <Period>(new ApplicationDbContext(dbContext.Options));

            repoPeriod.SaveChangesAsync().GetAwaiter().GetResult();

            var repoReservation = new EfDeletableEntityRepository <Reservation>(new ApplicationDbContext(dbContext.Options));

            repoReservation.SaveChangesAsync().GetAwaiter().GetResult();

            Payment payment = new Payment
            {
                AmountPaid     = 1000,
                DocumentNumber = "Plategno 125/15.04.2020",
            };

            repoPayment.AddAsync(payment);
            repoPayment.SaveChangesAsync().GetAwaiter().GetResult();

            RelaxProgram relaxProgram = new RelaxProgram
            {
                EcoTrail     = "Yes",
                Party        = "Yes",
                SwimmingPool = "Yes",
            };

            repoRelaxProgram.AddAsync(relaxProgram);
            repoRelaxProgram.SaveChangesAsync().GetAwaiter().GetResult();

            Period period = new Period
            {
                ArrivalDate = new DateTime(2020, 5, 1),
                DepartDate  = new DateTime(2020, 5, 5),
            };

            repoPeriod.AddAsync(period);
            repoPeriod.SaveChangesAsync().GetAwaiter().GetResult();

            var service = new ReservationService(repoRelaxProgram, repoPayment, repoPeriod, repoReservation);

            _ = service.AddAsync("cb6c61f0-4134-4450-8203-aaee05081d45", 5);
            var list = repoReservation.All().ToList();

            Assert.Single(list);
            Assert.Equal(5, list[0].NoOfPeople);
        }
コード例 #5
0
        public async Task GetByMovieAsyncTest()
        {
            var stateManager = new MockReliableStateManager();
            var showService  = new MockShowService
            {
                TryAddReservationToShowFunc = reservationItem => Task.FromResult(true)
            };
            var showServiceFactory = new MockShowServiceFactory(showService);
            var reservationService = new ReservationService(TestUtils.StatefulServiceContext, stateManager,
                                                            showServiceFactory);
            var testMovieName = "testMovie";
            var item          = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = testMovieName,
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            var item2 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = testMovieName,
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            var item3 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                Movie               = "anotherMovie",
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            await reservationService.AddAsync(item);

            await reservationService.AddAsync(item2);

            await reservationService.AddAsync(item3);


            var result = await reservationService.GetByMovieAsync(testMovieName);

            result.ForEach(i => Assert.IsTrue(i.Movie.Equals(testMovieName)));
        }
コード例 #6
0
        public async Task GetAllAsyncTest()
        {
            var stateManager = new MockReliableStateManager();
            var showService  = new MockShowService
            {
                TryAddReservationToShowFunc = reservationItem => Task.FromResult(true)
            };
            var showServiceFactory = new MockShowServiceFactory(showService);
            var reservationService = new ReservationService(TestUtils.StatefulServiceContext, stateManager,
                                                            showServiceFactory);

            var item = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            var item2 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            var item3 = new Domain.ReservationItem
            {
                ShowItemId          = new ItemId(Guid.NewGuid()),
                ReservationDateTime = new DateTime(2010, 10, 10, 10, 10, 10)
            };
            await reservationService.AddAsync(item);

            await reservationService.AddAsync(item2);

            await reservationService.AddAsync(item3);


            var result = await reservationService.GetAllReservationsAsync();

            Assert.IsTrue(result.ToList().Contains(item));
            Assert.IsTrue(result.ToList().Contains(item2));
            Assert.IsTrue(result.ToList().Contains(item3));
        }
        public async Task AddAsync_WhenCalledWithNew_ShouldAdd()
        {
            using (var context = new ApplicationContext(options))
            {
                var reservationService = new ReservationService(context, localizerMock.Object, emailServiceMock.Object);
                var guestNames         = "Guest Name";

                var reservation = await reservationService.AddAsync(
                    new Reservation { GuestNumber = 1, GuestNames = guestNames }
                    );

                Assert.True(context.Reservations.Contains(reservation));
                Assert.Equal(1, context.Reservations.Find(reservation.ReservationId).GuestNumber);
                Assert.Equal(guestNames, context.Reservations.Find(reservation.ReservationId).GuestNames);
            }
        }