protected static void Initialize()
        {
            RemarkRepositoryMock   = new Mock <IRemarkRepository>();
            UserRepositoryMock     = new Mock <IUserRepository>();
            RemarkPhotoServiceMock = new Mock <IRemarkPhotoService>();
            GeneralSettings        = new GeneralSettings
            {
                AllowedDistance = 15.0
            };

            RemarkStateService = new RemarkStateService(RemarkRepositoryMock.Object,
                                                        UserRepositoryMock.Object,
                                                        RemarkPhotoServiceMock.Object,
                                                        GeneralSettings);

            var user     = new User(UserId, "name", "user");
            var category = new Category("category");

            Description = "test";
            Remark      = new Remark(RemarkId, user, category, Location);
            Remark.AddPhoto(RemarkPhoto.Small(Guid.NewGuid(), "test.jpg", "http://my-test-image.com", RemarkUser.Create(user)));

            RemarkRepositoryMock.Setup(x => x.GetByIdAsync(Moq.It.IsAny <Guid>()))
            .ReturnsAsync(Remark);
            UserRepositoryMock.Setup(x => x.GetByUserIdAsync(Moq.It.IsAny <string>()))
            .ReturnsAsync(User);
        }
示例#2
0
        private async Task UploadImagesWithDifferentSizesAsync(Remark remark, RemarkUser user, File originalPhoto, string metadata = null)
        {
            var extension    = originalPhoto.Name.Split('.').Last();
            var uniqueNumber = _uniqueNumberGenerator.Generate();
            var groupId      = Guid.NewGuid();
            var size         = "big";
            var fileName     = metadata == null
                ? $"remark_{remark.Id:N}_{uniqueNumber}.{extension}"
                : $"remark_{remark.Id:N}_{metadata}_{uniqueNumber}.{extension}";
            var baseImageUrl = "";
            await _fileHandler.UploadAsync(originalPhoto, fileName, (baseUrl, fullUrl) =>
            {
                baseImageUrl = baseUrl;
                remark.AddPhoto(RemarkPhoto.Create(groupId, fileName, size, fullUrl, user, metadata));
            });

            var smallImageFileName  = $"200x200/{fileName}";
            var mediumImageFileName = $"600x600/{fileName}";
            var smallImageUrl       = $"{baseImageUrl}/{smallImageFileName}";
            var mediumImageUrl      = $"{baseImageUrl}/{mediumImageFileName}";

            remark.AddPhoto(RemarkPhoto.Create(groupId, smallImageFileName, "small", smallImageUrl, user, metadata));
            remark.AddPhoto(RemarkPhoto.Create(groupId, mediumImageFileName, "medium", mediumImageUrl, user, metadata));

            //Trigger resizing images using AWS Lambda, so they shall be accessible with https.
            await Task.WhenAll(new List <Task>
            {
                TriggerImageResizeAsync(smallImageUrl),
                TriggerImageResizeAsync(mediumImageUrl)
            });
        }
        protected static void Initialize()
        {
            FileHandlerMock              = new Mock <IFileHandler>();
            RemarkRepositoryMock         = new Mock <IRemarkRepository>();
            RemarkCategoryRepositoryMock = new Mock <ICategoryRepository>();
            TagRepositoryMock            = new Mock <ITagRepository>();
            UserRepositoryMock           = new Mock <IUserRepository>();
            CategoryRepositoryMock       = new Mock <ICategoryRepository>();
            GroupRepositoryMock          = new Mock <IGroupRepository>();
            ImageServiceMock             = new Mock <IImageService>();
            RemarkPhotoServiceMock       = new Mock <IRemarkPhotoService>();
            UniqueNumberGeneratorMock    = new Mock <IUniqueNumberGenerator>();
            GeneralSettings              = new GeneralSettings
            {
                AllowedDistance = 15.0
            };

            RemarkService = new RemarkService(RemarkRepositoryMock.Object,
                                              UserRepositoryMock.Object,
                                              CategoryRepositoryMock.Object,
                                              TagRepositoryMock.Object,
                                              GroupRepositoryMock.Object,
                                              RemarkPhotoServiceMock.Object,
                                              GeneralSettings);

            var user     = new User(UserId, "name", "user");
            var category = new Category("category");

            Remark = new Remark(RemarkId, user, category, Location);
            Remark.AddPhoto(RemarkPhoto.Small(Guid.NewGuid(), "test.jpg", "http://my-test-image.com", RemarkUser.Create(user)));

            RemarkRepositoryMock.Setup(x => x.GetByIdAsync(Moq.It.IsAny <Guid>()))
            .ReturnsAsync(Remark);
            UserRepositoryMock.Setup(x => x.GetByUserIdAsync(Moq.It.IsAny <string>()))
            .ReturnsAsync(User);
            ImageServiceMock.Setup(x => x.ProcessImage(Moq.It.IsAny <File>()))
            .Returns(new Dictionary <string, File>
            {
                { "small", File },
                { "medium", File },
                { "big", File }
            });
        }