コード例 #1
0
        private static async Task SeedDogsitterAsync(UserManager <ApplicationUser> userManager, string username)
        {
            var user = await userManager.FindByNameAsync(username);

            if (user != null)
            {
                if (user.Dogsitter == null)
                {
                    var dogsitter = new Dogsitter
                    {
                        UserId      = user.Id,
                        DateOfBirth = new DateTime(1990, 2, 10),
                        Description = "Харесвам кученцата адски много. Занимавам се от малък с тях и се хваля с това.",
                        Address     = "Младост 3, ул. Радичков",
                        Gender      = Gender.Male,
                        FirstName   = "Георги",
                        MiddleName  = "Петров",
                        LastName    = "Христов",
                        ImageUrl    = "https://res.cloudinary.com/add cloud name here/image/upload/v1586883029/hbmi3wn7j7o4m7jrx2n5.jpg",
                        PhoneNumber = user.PhoneNumber,
                        WageRate    = 10,
                    };

                    user.Dogsitter = dogsitter;
                }
            }
        }
コード例 #2
0
        public async Task AddDogsitterAsync(string id)
        {
            var user = this.usersRepository.All().FirstOrDefault(u => u.Id == id);

            var dogsitter = new Dogsitter();

            user.Dogsitter             = dogsitter;
            user.Dogsitter.PhoneNumber = user.PhoneNumber;
            user.Dogsitter.DateOfBirth = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day);

            await this.usersRepository.SaveChangesAsync();
        }
コード例 #3
0
        public async void GetOwnerAppointmentsToListShouldReturnProperValues()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var appointmentsRepository  = new EfDeletableEntityRepository <Appointment>(new ApplicationDbContext(options.Options));
            var notificationsRepository = new EfDeletableEntityRepository <Notification>(new ApplicationDbContext(options.Options));

            var appointmentsService = new AppointmentsService(notificationsRepository, appointmentsRepository);

            var dogsitter = new Dogsitter();

            var owner = new Owner();

            var user = new ApplicationUser
            {
                Dogsitter = dogsitter,
                UserName  = "******",
                Email     = "*****@*****.**",
            };

            var user2 = new ApplicationUser
            {
                Owner    = owner,
                UserName = "******",
                Email    = "*****@*****.**",
            };

            var appointment = new Appointment
            {
                Status    = AppointmentStatus.Unprocessed,
                Date      = DateTime.UtcNow,
                StartTime = DateTime.UtcNow,
                EndTime   = DateTime.UtcNow.AddMinutes(5),
                Dogsitter = dogsitter,
                Owner     = owner,
            };

            dogsitter.Appointments.Add(appointment);
            dogsitter.UserId = user.Id;
            owner.Appointments.Add(appointment);
            owner.UserId = user2.Id;

            await appointmentsService.CreateNewAppointment(appointment);

            var appointments         = appointmentsService.GetOwnerAppointmentsToList(user2.Id);
            var comparedAppointments = String.Compare(appointment.Id, appointments.First().Id, StringComparison.Ordinal);

            Assert.Equal(0, comparedAppointments);
        }
コード例 #4
0
        public void DogsitterCommentsShouldReturnProperData()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var commentsRepository = new EfDeletableEntityRepository <Comment>(new ApplicationDbContext(options.Options));
            var ratingsRepository  = new EfDeletableEntityRepository <Rating>(new ApplicationDbContext(options.Options));
            var ownersRepository   = new EfDeletableEntityRepository <Owner>(new ApplicationDbContext(options.Options));

            var commentsService = new CommentsService(commentsRepository, ratingsRepository, ownersRepository);

            var dogsitter = new Dogsitter
            {
                UserId = Guid.NewGuid().ToString(),
            };

            var owner = new Owner
            {
                UserId = Guid.NewGuid().ToString(),
            };

            var rating = new Rating
            {
                Score       = 5,
                Dogsitter   = dogsitter,
                DogsitterId = dogsitter.Id,
                SentBy      = SentByOwner,
                Owner       = owner,
                OwnerId     = owner.Id,
            };

            var comment = new Comment
            {
                Content     = CommentContent,
                RatingScore = rating.Score,
                Dogsitter   = dogsitter,
                DogsitterId = dogsitter.Id,
                OwnerId     = owner.Id,
                SentBy      = SentByOwner,
            };

            ownersRepository.AddAsync(owner);
            ownersRepository.SaveChangesAsync();

            commentsService.SubmitFeedback(comment, rating);
            var dogsitterComments = commentsService.DogsitterComments(dogsitter.UserId);

            Assert.Equal(dogsitterComments.FirstOrDefault().Content, comment.Content);
        }
コード例 #5
0
        public async void SendNotificationShouldSaveNotificationAccordingly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var userRepository      = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options));
            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var ownerRepository     = new EfDeletableEntityRepository <Owner>(new ApplicationDbContext(options.Options));

            var ownersService = new OwnersService(userRepository, ownerRepository, dogsitterRepository);

            var dogsitter = new Dogsitter();
            var owner     = new Owner();

            await dogsitterRepository.AddAsync(dogsitter);

            await dogsitterRepository.SaveChangesAsync();

            await ownersService.SendNotification(dogsitter.Id, owner, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow);

            Assert.Equal(1, dogsitter.Notifications.Count);
        }
コード例 #6
0
        public async void DogsitterDetailsByIdTemplateShouldReturnProperType()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var userRepository      = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options));
            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var ownerRepository     = new EfDeletableEntityRepository <Owner>(new ApplicationDbContext(options.Options));

            AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);

            var ownersService = new OwnersService(userRepository, ownerRepository, dogsitterRepository);

            var dogsitter = new Dogsitter();

            await dogsitterRepository.AddAsync(dogsitter);

            await dogsitterRepository.SaveChangesAsync();

            var dogsitterDb = ownersService.DogsitterDetailsById <DogsitterInfoViewModel>(dogsitter.Id);

            Assert.IsType <DogsitterInfoViewModel>(dogsitterDb);
        }
コード例 #7
0
        public async void SendNotificationShouldHaveCorrectOwnerAndDogsitter()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var userRepository      = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options));
            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var ownerRepository     = new EfDeletableEntityRepository <Owner>(new ApplicationDbContext(options.Options));

            var ownersService = new OwnersService(userRepository, ownerRepository, dogsitterRepository);

            var dogsitter = new Dogsitter();
            var owner     = new Owner();

            await dogsitterRepository.AddAsync(dogsitter);

            await dogsitterRepository.SaveChangesAsync();

            await ownersService.SendNotification(dogsitter.Id, owner, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow);

            var trueOwnerDogsitter = dogsitter.Notifications.FirstOrDefault().OwnerId == owner.Id;

            Assert.True(trueOwnerDogsitter);
        }
コード例 #8
0
        public async void GetDogsitterByDogsitterIdShouldThrowNullReferenceExceptionWhenWrongId()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var dogsittersService   = new DogsittersService(dogsitterRepository);

            var dogsitterBase = new Dogsitter
            {
                UserId = Guid.NewGuid().ToString(),
            };

            await dogsitterRepository.AddAsync(dogsitterBase);

            await dogsitterRepository.SaveChangesAsync();

            await dogsittersService.CurrentUserAddInfo(dogsitterBase.UserId, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, 5);

            var dogsitter = dogsittersService.GetDogsitterByDogsitterId("");

            Assert.Throws <NullReferenceException>(() => dogsitter.Id);
        }
コード例 #9
0
        public async void GetDogsitterByUserIdShouldReturnProperValue()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var dogsittersService   = new DogsittersService(dogsitterRepository);

            var dogsitterBase = new Dogsitter
            {
                UserId = Guid.NewGuid().ToString(),
            };

            await dogsitterRepository.AddAsync(dogsitterBase);

            await dogsitterRepository.SaveChangesAsync();

            await dogsittersService.CurrentUserAddInfo(dogsitterBase.UserId, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, 5);

            var dogsitter = dogsittersService.GetDogsitterByUserId(dogsitterBase.UserId);

            Assert.Equal(dogsitterBase.Id, dogsitter.Id);
        }
コード例 #10
0
        public async void CurrentUserAddInfoShouldAddDetailsAccordingly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());

            var dogsitterRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var dogsittersService   = new DogsittersService(dogsitterRepository);

            var dogsitterBase = new Dogsitter
            {
                UserId = Guid.NewGuid().ToString(),
            };

            await dogsitterRepository.AddAsync(dogsitterBase);

            await dogsitterRepository.SaveChangesAsync();

            await dogsittersService.CurrentUserAddInfo(dogsitterBase.UserId, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, FillInfo, 5);

            var dogsitter = await dogsitterRepository.All().FirstOrDefaultAsync();

            Assert.Equal(FillInfo, dogsitter.FirstName);
        }
コード例 #11
0
        public async void OwnerCommentsShouldReturnProperCount()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var commentsRepository   = new EfDeletableEntityRepository <Comment>(new ApplicationDbContext(options.Options));
            var ratingsRepository    = new EfDeletableEntityRepository <Rating>(new ApplicationDbContext(options.Options));
            var ownersRepository     = new EfDeletableEntityRepository <Owner>(new ApplicationDbContext(options.Options));
            var dogsittersRepository = new EfDeletableEntityRepository <Dogsitter>(new ApplicationDbContext(options.Options));
            var usersRepository      = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options.Options));

            var commentsService = new CommentsService(commentsRepository, ratingsRepository, ownersRepository);
            var ownersService   = new OwnersService(usersRepository, ownersRepository, dogsittersRepository);

            var dogsitter = new Dogsitter();

            var user = new ApplicationUser
            {
                Dogsitter = dogsitter,
                UserName  = User,
                Email     = User,
            };

            var user2 = new ApplicationUser
            {
                UserName = User2,
                Email    = User2,
            };

            dogsitter.UserId = user.Id;

            var rating = new Rating
            {
                Score       = 5,
                Dogsitter   = dogsitter,
                DogsitterId = dogsitter.Id,
                SentBy      = SentByDogsitter,
            };

            var comment = new Comment
            {
                Content     = CommentContent,
                RatingScore = rating.Score,
                Dogsitter   = dogsitter,
                DogsitterId = dogsitter.Id,
                SentBy      = SentByDogsitter,
            };

            await ownersService.CreateOwnerAsync(user2, FillInfo, FillInfo, FillInfo, FillInfo, Gender.Female, FillInfo, FillInfo, user2.Id, FillInfo);

            var owner = ownersRepository.All().FirstOrDefault();

            rating.Owner    = owner;
            rating.OwnerId  = owner.Id;
            comment.Owner   = owner;
            comment.OwnerId = owner.Id;
            user2.Owner     = owner;

            await commentsService.SubmitFeedback(comment, rating);

            var ownerComments = commentsService.OwnerComments(user2.Id);

            Assert.Single(ownerComments);
        }