コード例 #1
0
        public async void GetAnnouncement(
            EStatusCode expectedStatus,
            GetAnnouncement query
            )
        {
            var announcement = null as Announcement;

            if (expectedStatus != EStatusCode.NotFound)
            {
                announcement = EntitiesFactory.NewAnnouncement(id: query.Id).Save();
            }

            var(status, result) = await Request.Get <QueryResultOneTest <AnnouncementDetail> >(new Uri($"{Uri}/{query.Id}"), query);

            Assert.Equal(expectedStatus, status);
            if (expectedStatus == EStatusCode.Success)
            {
                var announcementResult = result.Data;
                Assert.NotNull(announcementResult);
                Assert.Equal(announcement.PricePurchase, announcementResult.PricePurchase);
                Assert.Equal(announcement.PriceSale, announcementResult.PriceSale);
                Assert.Equal(announcement.DateSale, announcementResult.DateSale);
                Assert.Equal(announcement.VehicleId, announcementResult.VehicleId);
            }
        }
コード例 #2
0
        public async void UpdateAnnouncement(
            EStatusCode expectedStatus,
            UpdateAnnouncement mutation,
            bool?withVehicle      = false,
            bool?withAnnouncement = false
            )
        {
            if (withVehicle.Value)
            {
                EntitiesFactory.NewVehicle(id: mutation.VehicleId).Save();
            }
            if (withAnnouncement.Value)
            {
                EntitiesFactory.NewAnnouncement(id: mutation.Id).Save();
            }

            var result = await MutationsHandler.Handle(mutation);

            Assert.Equal(expectedStatus, result.Status);
            if (expectedStatus == EStatusCode.Success)
            {
                var announcementDb = await MutationsDbContext.Announcements
                                     .Where(a => a.Id == mutation.Id)
                                     .FirstOrDefaultAsync();

                Assert.NotNull(announcementDb);
                Assert.Equal(mutation.PricePurchase, announcementDb.PricePurchase);
                Assert.Equal(mutation.PriceSale, announcementDb.PriceSale);
                Assert.Equal(mutation.VehicleId, announcementDb.Vehicle.Id);
                Assert.Null(announcementDb.DateSale);
            }
        }
コード例 #3
0
        public async void SellVehicle(
            EStatusCode expectedStatus,
            SellVehicle mutation,
            bool?withVehicle      = false,
            bool?withAnnouncement = false
            )
        {
            if (withAnnouncement.Value)
            {
                EntitiesFactory.NewAnnouncement(vehicleId: withVehicle.Value ? mutation.Id : null).Save();
            }

            var result = await MutationsHandler.Handle(mutation);

            Assert.Equal(expectedStatus, result.Status);
            if (expectedStatus == EStatusCode.Success)
            {
                var announcementDb = await MutationsDbContext.Announcements
                                     .Where(a => a.VehicleId == mutation.Id)
                                     .FirstOrDefaultAsync();

                Assert.NotNull(announcementDb);
                Assert.NotNull(announcementDb.DateSale);
                Assert.Equal(mutation.DateSale.Value.Date, announcementDb.DateSale.Value.Date);
            }
        }
コード例 #4
0
        public async void CreateReservation(
            EStatusCode expectedStatus,
            CreateReservation mutation
            )
        {
            if (expectedStatus != EStatusCode.NotFound)
            {
                EntitiesFactory.NewAnnouncement(id: mutation.AnnouncementId).Save();
            }
            if (expectedStatus == EStatusCode.Conflict)
            {
                EntitiesFactory.NewContact(phone: mutation.ContactPhone).Save();
            }

            var result = await MutationsHandler.Handle(mutation);

            Assert.Equal(expectedStatus, result.Status);
            if (expectedStatus == EStatusCode.Success)
            {
                var reservationDb = await MutationsDbContext.Reservations
                                    .Where(r => r.Id == mutation.Id)
                                    .FirstOrDefaultAsync();

                Assert.NotNull(reservationDb);
                Assert.Equal(mutation.AnnouncementId, reservationDb.AnnouncementId);
                Assert.Equal(mutation.ContactName, reservationDb.Contact.Name);
                Assert.Equal(mutation.ContactPhone, reservationDb.Contact.Phone);
            }
        }
コード例 #5
0
        public async void ListAnnouncementSelect(
            EStatusCode expectedStatus,
            ListAnnouncementSelect query
            )
        {
            var announcement = EntitiesFactory.NewAnnouncement().Save();

            var(status, result) = await Request.Get <QueryResultListTest <AnnouncementSelectList> >(Uri, query);

            Assert.Equal(expectedStatus, status);
            if (expectedStatus == EStatusCode.Success)
            {
                var announcementResult = result.Data.FirstOrDefault(f => f.Id == announcement.Id);
                Assert.NotNull(announcementResult);
            }
        }
コード例 #6
0
        public async void ListAnnouncementReport(
            EStatusCode expectedStatus,
            ListAnnouncementReport query
            )
        {
            var announcement = EntitiesFactory.NewAnnouncement(dateSale: DateTime.Now).Save();
            var result       = await QueriesHandler.Handle(query);

            Assert.Equal(expectedStatus, result.Status);
            if (expectedStatus == EStatusCode.Success)
            {
                Assert.NotEmpty(result.Data);
                var announcementResult = result.Data.FirstOrDefault(a => a.Id == announcement.Id);
                Assert.NotNull(announcementResult);
                Assert.Equal(announcement.PriceSale - announcement.PricePurchase, announcementResult.Profit);
                Assert.Equal(announcement.Vehicle.Model.Brand.Name, announcementResult.VehicleBrandName);
                Assert.Equal(announcement.Vehicle.Model.Name, announcementResult.VehicleModelName);
            }
        }
コード例 #7
0
        public async void DeleteAnnouncement(
            EStatusCode expectedStatus,
            DeleteAnnouncement mutation
            )
        {
            if (expectedStatus != EStatusCode.NotFound)
            {
                EntitiesFactory.NewAnnouncement(id: mutation.Id).Save();
            }

            var result = await MutationsHandler.Handle(mutation);

            Assert.Equal(expectedStatus, result.Status);
            if (expectedStatus == EStatusCode.Success)
            {
                var existsAnnouncement = await MutationsDbContext.Announcements.AnyAsync(a => a.Id == mutation.Id);

                Assert.False(existsAnnouncement);
            }
        }
コード例 #8
0
        public async void ListAnnouncement(
            EStatusCode expectedStatus,
            ListAnnouncement query,
            bool?exactlyAnnouncement = false
            )
        {
            var vehicle = EntitiesFactory.NewVehicle(
                brandId: query.BrandId,
                modelId: query.ModelId,
                color: query.ColorId,
                year: query.Year
                ).Save();
            var announcement = EntitiesFactory.NewAnnouncement(
                vehicle: vehicle,
                dateSale: query.DateSale?.DateTime
                ).Save();

            var(status, result) = await Request.Get <QueryResultListTest <AnnouncementList> >(Uri, query);

            Assert.Equal(expectedStatus, status);
            if (expectedStatus == EStatusCode.Success)
            {
                Assert.True(result.TotalRows > 0);
                Assert.True(result.Data.Length <= query.Limit);
            }
            if (exactlyAnnouncement.Value)
            {
                var listAnnouncement   = result.Data.ToList();
                var announcementResult = listAnnouncement
                                         .Where(a => a.Id == announcement.Id)
                                         .FirstOrDefault();
                Assert.NotNull(announcementResult);
                Assert.Equal(announcement.PricePurchase, announcementResult.PricePurchase);
                Assert.Equal(announcement.PriceSale, announcementResult.PriceSale);
                Assert.Equal(announcement.DateSale.Value.Date, announcementResult.DateSale.Value.Date);
                Assert.Equal(announcement.Vehicle.Year, announcementResult.VehicleYear);
                Assert.Equal(announcement.Vehicle.Model.Brand.Name, announcementResult.VehicleBrandName);
                Assert.Equal(announcement.Vehicle.Model.Name, announcementResult.VehicleModelName);
            }
        }