Example #1
0
        public long CreateNewAudioVersion(long audioId, CreateAudioContract data, Stream stream)
        {
            var userId          = m_authenticationManager.GetCurrentUserId();
            var resultVersionId = new CreateNewAudioResourceVersionWork(m_resourceRepository, m_fileSystemManager, audioId,
                                                                        data, stream, userId).Execute();

            return(resultVersionId);
        }
Example #2
0
        public void TestNewAudioVersion()
        {
            var repository        = new MockResourceRepository();
            var fileSystemManager = new MockFileSystemManager();
            var resourceId        = 2;
            var userId            = 3;
            var data = new CreateAudioContract
            {
                FileName          = "test-audio.ogg",
                Comment           = string.Empty,
                OriginalVersionId = 1,
                ResourceTrackId   = 30,
                Duration          = new TimeSpan(0, 3, 45)
            };

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

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

            var latestAudio = repository.GetLatestResourceVersion <AudioResource>(resourceId);

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


            var work = new CreateNewAudioResourceVersionWork(repository, fileSystemManager, resourceId, 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 newAudioResource = repository.CreatedObjects.OfType <AudioResource>().First();

            Assert.AreEqual(latestAudio.VersionNumber + 1, newAudioResource.VersionNumber);
            Assert.AreEqual("audio/ogg", newAudioResource.MimeType);
            Assert.AreEqual(AudioTypeEnum.Ogg, newAudioResource.AudioType);
            Assert.AreEqual(latestAudio.Resource.Id, newAudioResource.Resource.Id);
            Assert.AreEqual(userId, newAudioResource.CreatedByUser.Id);
            Assert.AreEqual(data.ResourceTrackId, newAudioResource.ResourceTrack.Id);
        }