示例#1
0
        //FindLog_Should
        public static void GetContextWithLog(string DbName, int logId, string description)
        {
            var options = GetOptions(DbName);

            var context = new AlphaHotelDbContext(options);
            var log     = new Log()
            {
                Id          = logId,
                Description = description
            };

            context.Logs.Add(log);
            context.SaveChanges();
        }
        //CreateBusiness_Should
        public static void GetContextWithBusiness(string DbName, int businessId, string businessName)
        {
            var options = GetOptions(DbName);

            var context = new AlphaHotelDbContext(options);

            var business = new Business()
            {
                Id   = businessId,
                Name = businessName
            };

            context.Businesses.Add(business);
            context.SaveChanges();
        }
        public async Task AddCategory_Return_WhenAllParametersArePassed()
        {
            var categoryName = "category";

            //CategoryTestUtils.GetContextWithCategory(nameof(AddCategory_Return_WhenCategoryAllParametersArePassed), categoryName);

            using (var assertContext = new AlphaHotelDbContext(CategoryTestUtils.GetOptions(nameof(AddCategory_Return_WhenAllParametersArePassed))))
            {
                var categoryService = new CategoryService(assertContext);
                await categoryService.AddCategory(categoryName);

                var category = await assertContext.Categories.FirstOrDefaultAsync(c => c.Name == categoryName);

                Assert.AreEqual(categoryName, category.Name);
            }
        }
        public async Task ReturnAllCategories()
        {
            var categoryId = 1;

            CategoryTestUtils.ResetAutoMapper();
            CategoryTestUtils.InitializeAutoMapper();
            CategoryTestUtils.GetContextWithCategories(nameof(ReturnAllCategories), categoryId);

            using (var assertContext = new AlphaHotelDbContext(CategoryTestUtils.GetOptions(nameof(ReturnAllCategories))))
            {
                var categoryService = new CategoryService(assertContext);
                var categories      = await categoryService.ListAllCategoriesAsync();

                Assert.AreEqual(1, categories.Count);
            }
        }
示例#5
0
        //EditAccountAsync_Should
        public static void GetContextWithFullUser(string DbName, string userId, string username, string email, bool isDeleted = false)
        {
            var options = GetOptions(DbName);

            var context = new AlphaHotelDbContext(options);
            var user    = new User()
            {
                Id        = userId,
                UserName  = username,
                Email     = email,
                IsDeleted = isDeleted
            };

            context.Users.Add(user);
            context.SaveChanges();
        }
        public async Task ReturnAllFacilities()
        {
            var facilityId = 1;

            FacilityTestUtils.ResetAutoMapper();
            FacilityTestUtils.InitializeAutoMapper();
            FacilityTestUtils.GetContextWithFacilities(nameof(ReturnAllFacilities), facilityId);

            using (var assertContext = new AlphaHotelDbContext(FacilityTestUtils.GetOptions(nameof(ReturnAllFacilities))))
            {
                var facilityService = new FacilityService(assertContext);
                var facilities      = await facilityService.ListAllFacilitiesAsync();

                Assert.AreEqual(1, facilities.Count);
            }
        }
        public async Task ReturnBusiness_WhenAllParametersArePassed()
        {
            var name             = "business";
            var location         = "tsarigradsko";
            var gpsCoordinates   = "3424444";
            var about            = "about";
            var shortDescription = "shortDescription";
            var coverPicture     = "path";
            var pics             = new List <string>()
            {
                "path", "otherPath"
            };
            var facilities = new List <int>()
            {
                1, 2
            };

            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();
            var mappingProviderMocked = new Mock <IMappingProvider>();

            Business mapInput = null;

            mappingProviderMocked.Setup(mpm => mpm.MapTo <BusinessDTO>(It.IsAny <Business>()))
            .Callback <object>(inputArg => mapInput = inputArg as Business);

            var createdOn = dateTimeWrapperMocked.Object.Now();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ReturnBusiness_WhenAllParametersArePassed))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                await businessService.CreateBusiness(name, location, gpsCoordinates, about, shortDescription, coverPicture, pics, facilities);

                Assert.AreEqual(name, mapInput.Name);
                Assert.AreEqual(location, mapInput.Location);
                Assert.AreEqual(gpsCoordinates, mapInput.GPSCoordinates);
                Assert.AreEqual(about, mapInput.About);
                Assert.AreEqual(shortDescription, mapInput.ShortDescription);
                Assert.AreEqual(coverPicture, mapInput.CoverPicture);
                Assert.AreEqual(pics.Count, mapInput.Pictures.Count);
                Assert.AreEqual(facilities.Count, mapInput.BusinessesFacilities.Count);
                Assert.AreEqual(createdOn, mapInput.CreatedOn);
            }
        }
        public async Task ListAllFeedbacksForUserAsync_CallCreateAsyncOnce()
        {
            var paginatedListMocked   = new Mock <IPaginatedList <FeedbackDTO> >();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var censorMocked          = new Mock <ICensor>();

            FeedbackTestUtils.ResetAutoMapper();
            FeedbackTestUtils.InitializeAutoMapper();
            //FeedbackTestUtils.GetContextWithBusiness(nameof(ListAllFeedbacksForUserAsync_CallCreateAsyncOnce), businessId, businessName);

            using (var assertContext = new AlphaHotelDbContext(FeedbackTestUtils.GetOptions(nameof(ListAllFeedbacksForUserAsync_CallCreateAsyncOnce))))
            {
                var feedbackService = new FeedbackService(assertContext, paginatedListMocked.Object, dateTimeWrapperMocked.Object, censorMocked.Object);
                await feedbackService.ListAllFeedbacksForUserAsync(It.IsAny <int>(), It.IsAny <int?>(), It.IsAny <int>());

                paginatedListMocked.Verify(pl => pl.CreateAsync(It.IsAny <IQueryable <FeedbackDTO> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Once);
            }
        }
        public async Task ThrowException_WhenUserIsNotFound()
        {
            var userId = "userId";

            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();

            //AccountTestUtils.GetContextWithUser(nameof(ThrowException_WhenUserIsNotFound), userId);

            using (var assertContext = new AlphaHotelDbContext(FeedbackTestUtils.GetOptions(nameof(ThrowException_WhenUserIsNotFound))))
            {
                var accountService = new AccountService(assertContext, userManagerWrapperMocked.Object, mappingProviderMocked.Object, dateTimeWrapperMocked.Object);

                await Assert.ThrowsExceptionAsync <ArgumentException>(
                    async() => await accountService.FindAccountAsync(userId));
            }
        }
        public async Task ThrowException_WhenLogBookAlreadyExists()
        {
            var logbookName = "logbook";
            var businessId  = 1;

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.GetContextWithBusinessAndLogBook(nameof(ThrowException_WhenLogBookAlreadyExists), businessId, logbookName);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ThrowException_WhenLogBookAlreadyExists))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);

                await Assert.ThrowsExceptionAsync <ArgumentException>(
                    async() => await businessService.AddLogBookToBusinessAsync(logbookName, businessId));
            }
        }
示例#11
0
        public async Task ListAllLogsForManagerAsync_CallCreateAsyncOnce()
        {
            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var paginatedListMocked      = new Mock <IPaginatedList <LogDTO> >();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();
            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var loggerMocked             = new Mock <ILogger <LogBookService> >();

            LogBookTestUtils.ResetAutoMapper();
            LogBookTestUtils.InitializeAutoMapper();
            //LogBookTestUtils.GetContextWithBusiness(nameof(ListAllLogsForManagerAsync_CallCreateAsyncOnce), businessId, businessName);

            using (var assertContext = new AlphaHotelDbContext(LogBookTestUtils.GetOptions(nameof(ListAllLogsForManagerAsync_CallCreateAsyncOnce))))
            {
                var logbookService = new LogBookService(assertContext, mappingProviderMocked.Object, paginatedListMocked.Object, dateTimeWrapperMocked.Object, userManagerWrapperMocked.Object, loggerMocked.Object);
                await logbookService.ListAllLogsForManagerAsync(It.IsAny <string>(), It.IsAny <int?>(), It.IsAny <int>(), It.IsAny <string>());

                paginatedListMocked.Verify(pl => pl.CreateAsync(It.IsAny <IQueryable <LogDTO> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Once);
            }
        }
        public async Task ReturnFeedback_WhenFeedbackIsFound()
        {
            var id = 1;
            var paginatedListMocked   = new Mock <IPaginatedList <FeedbackDTO> >();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var censorMocked          = new Mock <ICensor>();

            FeedbackTestUtils.ResetAutoMapper();
            FeedbackTestUtils.InitializeAutoMapper();
            FeedbackTestUtils.GetContextWithFeedbackId(nameof(ReturnFeedback_WhenFeedbackIsFound), id);

            using (var assertContext = new AlphaHotelDbContext(FeedbackTestUtils.GetOptions(nameof(ReturnFeedback_WhenFeedbackIsFound))))
            {
                var feedbackService = new FeedbackService(assertContext, paginatedListMocked.Object, dateTimeWrapperMocked.Object, censorMocked.Object);

                var feedback = await feedbackService.FindFeedback(id);

                Assert.AreEqual(id, feedback.Id);
            }
        }
示例#13
0
        public async Task ReturnLogDTO_WhenAllParametersArePassed()
        {
            var logbookId    = 1;
            var userId       = "userId";
            var description  = "description";
            var categoryId   = 1;
            var username     = "******";
            var statusId     = 1;
            var statusType   = "todo";
            var categoryName = "category";

            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var paginatedListMocked      = new Mock <IPaginatedList <LogDTO> >();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();
            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var loggerMocked             = new Mock <ILogger <LogBookService> >();

            Log mapInput = null;

            mappingProviderMocked.Setup(mpm => mpm.MapTo <LogDTO>(It.IsAny <Log>()))
            .Callback <object>(inputArg => mapInput = inputArg as Log);

            LogBookTestUtils.ResetAutoMapper();
            LogBookTestUtils.InitializeAutoMapper();
            LogBookTestUtils.GetContextWithFullLogAndLogBookAndUserAndStatusAndCategory(nameof(ReturnLogDTO_WhenAllParametersArePassed), logbookId, userId, categoryId, description, username, statusId, statusType, categoryName);

            using (var assertContext = new AlphaHotelDbContext(LogBookTestUtils.GetOptions(nameof(ReturnLogDTO_WhenAllParametersArePassed))))
            {
                var logbookService = new LogBookService(assertContext, mappingProviderMocked.Object, paginatedListMocked.Object, dateTimeWrapperMocked.Object, userManagerWrapperMocked.Object, loggerMocked.Object);
                await logbookService.AddLog(logbookId, userId, description, categoryId);

                var log = await assertContext.Logs.FirstOrDefaultAsync(l => l.LogBookId == logbookId);

                Assert.AreEqual(log.Id, mapInput.Id);
                Assert.AreEqual(log.LogBookId, mapInput.LogBookId);
                Assert.AreEqual(log.Description, mapInput.Description);
                Assert.AreEqual(log.StatusId, mapInput.StatusId);
                Assert.AreEqual(log.CreatedOn, mapInput.CreatedOn);
                Assert.IsFalse(mapInput.IsDeleted);
            }
        }
示例#14
0
        //AddLog_Should
        public static void GetContextWithFullLogAndLogBookAndUserAndStatusAndCategory(string DbName, int logbookId, string userId, int categoryId, string description, string username, int statusId, string statusType, string categoryName, bool isDeleted = false)
        {
            var options = GetOptions(DbName);

            var context  = new AlphaHotelDbContext(options);
            var category = new Category()
            {
                Id   = categoryId,
                Name = categoryName
            };
            var status = new Status()
            {
                Id   = statusId,
                Type = statusType
            };
            var user = new User()
            {
                Id       = userId,
                UserName = username
            };
            //var log = new Log
            //{
            //    LogBookId = logbookId,
            //    AuthorId = userId,
            //    CategoryId = categoryId,
            //    Description = description,
            //    IsDeleted = isDeleted,
            //    StatusId = statusId
            //};
            var logbook = new LogBook()
            {
                Id = logbookId
            };

            //context.Logs.Add(log);
            context.Users.Add(user);
            context.Statuses.Add(status);
            context.Categories.Add(category);
            context.LogBooks.Add(logbook);
            context.SaveChanges();
        }
示例#15
0
        //ListTopNBusinessAsync_Should, FindDetailedBusinessAsync_Should
        public static void GetContextWithBusinessAndFeedback(string DbName, int businessId, int feedbackRating)
        {
            var options = GetOptions(DbName);

            var context = new AlphaHotelDbContext(options);

            var feedback = new Feedback()
            {
                BusinessId = businessId,
                Rate       = feedbackRating
            };

            var business = new Business()
            {
                Id = businessId,
            };

            context.Businesses.Add(business);
            context.Feedbacks.Add(feedback);
            context.SaveChanges();
        }
示例#16
0
        public async Task ListAllUsersAsync_ReturnUsers()
        {
            var userId = "userId";

            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();

            AccountTestUtils.ResetAutoMapper();
            AccountTestUtils.InitializeAutoMapper();
            AccountTestUtils.GetContextWithUser(nameof(ListAllUsersAsync_ReturnUsers), userId);

            using (var assertContext = new AlphaHotelDbContext(AccountTestUtils.GetOptions(nameof(ListAllUsersAsync_ReturnUsers))))
            {
                var accountService = new AccountService(assertContext, userManagerWrapperMocked.Object, mappingProviderMocked.Object, dateTimeWrapperMocked.Object);

                var accountDTO = await accountService.ListAllUsersAsync();

                Assert.AreEqual(1, accountDTO.Count);
            }
        }
        public async Task ListBusinessLogbooksAsync_ReturnLogBooks()
        {
            var businessId  = 1;
            var logbookName = "logbook";

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();
            BusinessTestUtils.GetContextWithBusinessAndLogBook(nameof(ListBusinessLogbooksAsync_ReturnLogBooks), businessId, logbookName);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ListBusinessLogbooksAsync_ReturnLogBooks))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var logbooks        = await businessService.ListBusinessLogbooksAsync(businessId);

                Assert.AreEqual(1, logbooks.Count);
            }
        }
示例#18
0
        //AddLogBookToBusinessAsync_Should, ListBusinessLogbooksAsync_ReturnLogBooks
        public static void GetContextWithBusinessAndLogBook(string DbName, int businessId, string logbookName)
        {
            var options = GetOptions(DbName);

            var context = new AlphaHotelDbContext(options);

            var logbook = new LogBook()
            {
                BusinessId = businessId,
                Name       = logbookName
            };

            var business = new Business()
            {
                Id = businessId,
            };

            context.Businesses.Add(business);
            context.LogBooks.Add(logbook);
            context.SaveChanges();
        }
示例#19
0
        //ListAllFeedbacksForUserAsync_Should
        public static void GetContextWithFeedbackIdAndBusiness(string DbName, int feedbackId, int businessId, bool isDeleted = false)
        {
            var options = GetOptions(DbName);

            var context  = new AlphaHotelDbContext(options);
            var feedback = new Feedback()
            {
                Id         = feedbackId,
                BusinessId = businessId,
                IsDeleted  = isDeleted
            };

            var business = new Business()
            {
                Id = businessId
            };

            context.Feedbacks.Add(feedback);
            context.Businesses.Add(business);
            context.SaveChanges();
        }
        public async Task FindAllLogsWithGivenParameters_WhenLogsExists()
        {
            var businessId = 1;
            var date       = DateTime.Now;

            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();
            var mappingProviderMocked = new Mock <IMappingProvider>();

            var createdOn = dateTimeWrapperMocked.Object.Now();

            BusinessTestUtils.GetContextWithLogs(nameof(FindAllLogsWithGivenParameters_WhenLogsExists), businessId, date);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(FindAllLogsWithGivenParameters_WhenLogsExists))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var result          = await businessService.DeleteLogsForDate(businessId, date);

                Assert.AreEqual(2, result);
            }
        }
示例#21
0
        public async Task ThrowException_WhenStatusIdIsLargerThanStatusesCount()
        {
            var logId    = 1;
            var statusId = 5;

            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var paginatedListMocked      = new Mock <IPaginatedList <LogDTO> >();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();
            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var loggerMocked             = new Mock <ILogger <LogBookService> >();

            LogBookTestUtils.ResetAutoMapper();
            LogBookTestUtils.InitializeAutoMapper();
            LogBookTestUtils.GetContextWithLogAndStatuses(nameof(ThrowException_WhenStatusIdIsLargerThanStatusesCount), logId);

            using (var assertContext = new AlphaHotelDbContext(LogBookTestUtils.GetOptions(nameof(ThrowException_WhenStatusIdIsLargerThanStatusesCount))))
            {
                var logbookService = new LogBookService(assertContext, mappingProviderMocked.Object, paginatedListMocked.Object, dateTimeWrapperMocked.Object, userManagerWrapperMocked.Object, loggerMocked.Object);
                await Assert.ThrowsExceptionAsync <ArgumentException>(
                    async() => await logbookService.ChangeStatusOfLogAsync(statusId, logId));
            }
        }
示例#22
0
        public async Task ThrowException_WhenLogIsNotFound()
        {
            var logId = 1;

            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var paginatedListMocked      = new Mock <IPaginatedList <LogDTO> >();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();
            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var loggerMocked             = new Mock <ILogger <LogBookService> >();

            LogBookTestUtils.ResetAutoMapper();
            LogBookTestUtils.InitializeAutoMapper();
            //LogBookTestUtils.(nameof(FindLog_ThrowException_WhenLogIsNotFound));

            using (var assertContext = new AlphaHotelDbContext(LogBookTestUtils.GetOptions(nameof(ThrowException_WhenLogIsNotFound))))
            {
                var logbookService = new LogBookService(assertContext, mappingProviderMocked.Object, paginatedListMocked.Object, dateTimeWrapperMocked.Object, userManagerWrapperMocked.Object, loggerMocked.Object);

                await Assert.ThrowsExceptionAsync <ArgumentException>(
                    async() => await logbookService.FindLog(logId));
            }
        }
        public async Task ReturnUser_WhenUserIsFound()
        {
            var userId = "userId";
            var user   = new User()
            {
                Id = userId
            };

            var userManagerWrapperMocked = new Mock <IUserManagerWrapper <User> >();
            var mappingProviderMocked    = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked    = new Mock <IDateTimeWrapper>();
            var role  = "manager";
            var roles = new List <string> {
                role
            };
            var accountDetailsDTO = new AccountDetailsDTO
            {
                Id = userId
            };

            userManagerWrapperMocked.Setup(um => um.GetRolesAsync(It.IsAny <User>())).ReturnsAsync(roles);

            User mapInput = user;

            mappingProviderMocked.Setup(mpm => mpm.MapTo <AccountDetailsDTO>(It.IsAny <User>()))
            .Returns(accountDetailsDTO);

            AccountTestUtils.GetContextWithUser(nameof(ReturnUser_WhenUserIsFound), userId);

            using (var assertContext = new AlphaHotelDbContext(AccountTestUtils.GetOptions(nameof(ReturnUser_WhenUserIsFound))))
            {
                var accountService = new AccountService(assertContext, userManagerWrapperMocked.Object, mappingProviderMocked.Object, dateTimeWrapperMocked.Object);

                var account = await accountService.FindAccountAsync(userId);

                Assert.AreEqual(userId, mapInput.Id);
                Assert.AreEqual(role, account.Role);
            }
        }
        public async Task ChangeIsDeletedToTrue_WhenLogsMatched()
        {
            var businessId = 1;
            var date       = DateTime.Now;

            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();
            var mappingProviderMocked = new Mock <IMappingProvider>();

            var createdOn = dateTimeWrapperMocked.Object.Now();

            BusinessTestUtils.GetContextWithLogs(nameof(ChangeIsDeletedToTrue_WhenLogsMatched), businessId, date);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ChangeIsDeletedToTrue_WhenLogsMatched))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var result          = await businessService.DeleteLogsForDate(businessId, date);

                Assert.AreEqual(2, assertContext.Logs.Count(l => l.IsDeleted == true));
                //Assert.IsTrue(assertContext.Logs.All(l => l.IsDeleted == true));
            }
        }
示例#25
0
        public async Task FindDetailedBusinessAsync_ReturnBusinesses()
        {
            var businessId     = 1;
            var feedbackCount  = 1;
            var feedbackRating = 5;

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();
            BusinessTestUtils.GetContextWithBusinessAndFeedback(nameof(FindDetailedBusinessAsync_ReturnBusinesses), businessId, feedbackRating);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(FindDetailedBusinessAsync_ReturnBusinesses))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var business        = await businessService.FindDetaliedBusinessAsync(businessId, feedbackCount);

                Assert.AreEqual(feedbackCount, business.Feedbacks.Count);
            }
        }
        public async Task ThrowException_WhenBusinessIsNotFound()
        {
            var text                  = "text";
            var rating                = 5;
            var author                = "gosho";
            var businessId            = 1;
            var wrongBusinessId       = 2;
            var feedbackId            = 1;
            var paginatedListMocked   = new Mock <IPaginatedList <FeedbackDTO> >();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var censorMocked          = new Mock <ICensor>();

            FeedbackTestUtils.GetContextWithFullFeedback(nameof(ThrowException_WhenBusinessIsNotFound), text, rating, author, businessId, feedbackId);

            using (var assertContext = new AlphaHotelDbContext(FeedbackTestUtils.GetOptions(nameof(ThrowException_WhenBusinessIsNotFound))))
            {
                var feedbackService = new FeedbackService(assertContext, paginatedListMocked.Object, dateTimeWrapperMocked.Object, censorMocked.Object);

                await Assert.ThrowsExceptionAsync <ArgumentException>(
                    async() => await feedbackService.AddFeedbackAsync(text, rating, author, wrongBusinessId));
            }
        }
        public async Task ReturnBusinesses_ContainingKeyword()
        {
            var businessId   = 1;
            var businessName = "business";
            var keyword      = "busi";

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();
            BusinessTestUtils.GetContextWithBusiness(nameof(ReturnBusinesses_ContainingKeyword), businessId, businessName);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ReturnBusinesses_ContainingKeyword))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var businesses      = await businessService.ListAllBusinessesContainsKeyWordAsync(keyword);

                Assert.AreEqual(1, businesses.Count);
            }
        }
示例#28
0
        //AddFeedbackAsync_Should
        public static void GetContextWithFullFeedbackAndAnonymousAuthor(string DbName, string feedbackText, int rating, string author, int businessId)
        {
            var options = GetOptions(DbName);

            var context  = new AlphaHotelDbContext(options);
            var business = new Business()
            {
                Id = businessId
            };

            var feedback = new Feedback()
            {
                BusinessId = businessId,
                Author     = "Anonymous",
                Rate       = rating,
                Text       = feedbackText,
                IsDeleted  = false
            };

            context.Feedbacks.Add(feedback);
            context.Businesses.Add(business);
            context.SaveChanges();
        }
示例#29
0
        public async Task ListTopNBusinessesAsync_ReturnZero_WhenTheBusinessHasNoFeedbacks()
        {
            var count = 0;

            var businessId     = 1;
            var feedbackRating = 5;

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();
            BusinessTestUtils.GetContextWithBusinessAndFeedback(nameof(ListTopNBusinessesAsync_ReturnZero_WhenTheBusinessHasNoFeedbacks), businessId, feedbackRating);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ListTopNBusinessesAsync_ReturnZero_WhenTheBusinessHasNoFeedbacks))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                var businesses      = await businessService.ListTopNBusinessesAsync(count);

                Assert.AreEqual(count, businesses.Count);
            }
        }
        public async Task ListAllBusinessesByPageAsync_CallCreateAsyncOnce()
        {
            var businessId   = 1;
            var businessName = "business";

            var pageNumber = 1;
            var pageSize   = 2;

            var mappingProviderMocked = new Mock <IMappingProvider>();
            var dateTimeWrapperMocked = new Mock <IDateTimeWrapper>();
            var paginatedListMocked   = new Mock <IPaginatedList <BusinessShortInfoDTO> >();

            BusinessTestUtils.ResetAutoMapper();
            BusinessTestUtils.InitializeAutoMapper();
            BusinessTestUtils.GetContextWithBusiness(nameof(ListAllBusinessesByPageAsync_CallCreateAsyncOnce), businessId, businessName);

            using (var assertContext = new AlphaHotelDbContext(BusinessTestUtils.GetOptions(nameof(ListAllBusinessesByPageAsync_CallCreateAsyncOnce))))
            {
                var businessService = new BusinessService(assertContext, mappingProviderMocked.Object, dateTimeWrapperMocked.Object, paginatedListMocked.Object);
                await businessService.ListAllBusinessesByPageAsync(pageNumber, pageSize);

                paginatedListMocked.Verify(pl => pl.CreateAsync(It.IsAny <IQueryable <BusinessShortInfoDTO> >(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Once);
            }
        }