Esempio n. 1
0
        public NewResourceResultContract CreateNewImageVersion(CreateImageContract data, Stream stream)
        {
            var userId          = m_authenticationManager.GetCurrentUserId();
            var resultVersionId = new CreateNewImageResourceVersionWork(m_resourceRepository, m_fileSystemManager,
                                                                        data, stream, userId).Execute();

            return(resultVersionId);
        }
Esempio n. 2
0
        public void TestNewImageVersion()
        {
            var repository        = new MockResourceRepository();
            var fileSystemManager = new MockFileSystemManager();
            var resourceId        = 1;
            var userId            = 2;
            var data = new CreateImageContract
            {
                FileName          = "test.jpeg",
                Comment           = string.Empty,
                ImageId           = resourceId,
                OriginalVersionId = 1,
            };

            fileSystemManager.FileInfo = new SaveResourceResult
            {
                FileNameId = "file-id",
                FileSize   = 4096,
            };

            try
            {
                new CreateNewImageResourceVersionWork(repository, fileSystemManager, data, Stream.Null, userId).Execute();
                Assert.Fail("Create new ImageResouce should fail, because version conflict");
            }
            catch (MainServiceException e)
            {
                Assert.AreEqual(HttpStatusCode.Conflict, e.StatusCode);
            }

            var latestImage = repository.GetLatestResourceVersion <ImageResource>(resourceId);

            data.OriginalVersionId = latestImage.Id; // No conflict ID


            var work = new CreateNewImageResourceVersionWork(repository, fileSystemManager, data, Stream.Null, userId);

            work.Execute();

            Assert.AreEqual(1, repository.CreatedObjects.Count);
            Assert.AreEqual(1, repository.UpdatedObjects.Count);
            Assert.AreSame(repository.CreatedObjects.First(), repository.UpdatedObjects.First());

            var newImageResource = repository.CreatedObjects.OfType <ImageResource>().First();

            Assert.AreEqual(latestImage.VersionNumber + 1, newImageResource.VersionNumber);
            Assert.AreEqual("image/jpeg", newImageResource.MimeType);
            Assert.AreEqual(latestImage.Resource.Id, newImageResource.Resource.Id);
            Assert.AreEqual(userId, newImageResource.CreatedByUser.Id);
        }