示例#1
0
        public ImageServiceTests()
        {
            //arrange
            var options = new DbContextOptionsBuilder <ImageServeDbContext>()
                          .UseInMemoryDatabase(databaseName: "ImageServeTest")
                          .Options;
            var dbContext       = new ImageServeDbContext(options);
            var imageRepository = new DbRepository <Image>(dbContext);
            var likesRepository = new DbRepository <ImageLike>(dbContext);
            var userRepository  = new DbRepository <User>(dbContext);
            var tagsRepository  = new DbRepository <ImageTag>(dbContext);
            var mapperMock      = MockAutoMapper();
            var userServiceMock = MockUserService();
            var tagServiceMock  = MockTagService();
            Mock <IBlobStorageService> blobServiceMock = MockBlobService();

            this.imageService = new ImageService(imageRepository, mapperMock.Object, tagServiceMock.Object, userServiceMock.Object, blobServiceMock.Object, likesRepository);

            //act
            Setup(imageRepository).GetAwaiter().GetResult();
        }
        public ImageServiceTests()
        {
            //mocks
            var options = new DbContextOptionsBuilder <ImageServeDbContext>()
                          .UseInMemoryDatabase(databaseName: "ImageServeTest") // Give a Unique name to the DB
                          .Options;

            var dbContext = new ImageServeDbContext(options);

            var imageRepository = new DbRepository <Image>(dbContext);

            var likesRepository = new DbRepository <ImageLike>(dbContext);

            var userRepository = new DbRepository <User>(dbContext);

            var tagsRepository = new DbRepository <ImageTag>(dbContext);

            var mapperMock = new Mock <IMapper>();

            var userServiceMock = new Mock <IUserService>();

            userServiceMock
            .Setup(us => us.GetCurrentId())
            .Returns("2")
            .Verifiable();


            var tagServiceMock = new Mock <ITagService>();

            tagServiceMock
            .Setup(ts => ts.AddToImageAsync(It.IsAny <Image>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var blobServiceMock = new Mock <IBlobStorageService>();

            blobServiceMock
            .Setup(bs => bs.UploadFromFileAsync(It.IsAny <byte[]>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.CompletedTask)
            .Verifiable();



            //arrange
            //AllByUser arrange
            this.friend = new User()
            {
                Id = "2"
            };

            friend.UserFriends.Add(new Friendship()
            {
                UserId   = friend.Id,
                FriendId = "2"
            });

            this.unknown = new User()
            {
                Id = "3"
            };

            var friendPublicImage = new Image()
            {
                Id       = 101,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var friendPrivateImage = new Image()
            {
                Id       = 102,
                UserId   = friend.Id,
                User     = friend,
                IsPublic = true
            };

            var unknownPublicImage = new Image()
            {
                Id       = 103,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = true
            };

            var unknownPrivateImage = new Image()
            {
                Id       = 104,
                UserId   = unknown.Id,
                User     = unknown,
                IsPublic = false
            };

            imageRepository.AddAsync(friendPublicImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(friendPrivateImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(unknownPublicImage).GetAwaiter().GetResult();
            imageRepository.AddAsync(unknownPrivateImage).GetAwaiter().GetResult();
            imageRepository.SaveChangesAsync().GetAwaiter().GetResult();


            imageService = new ImageService(imageRepository, mapperMock.Object, tagServiceMock.Object, userServiceMock.Object, blobServiceMock.Object, likesRepository);
        }