예제 #1
0
        public void Can_Perform_Add_On_MediaTypeRepository()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider);

                // Act
                var contentType = MockedContentTypes.CreateVideoMediaType();
                repository.Save(contentType);


                var fetched = repository.Get(contentType.Id);

                // Assert
                Assert.That(contentType.HasIdentity, Is.True);
                Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True);
                Assert.That(contentType.Path.Contains(","), Is.True);
                Assert.That(contentType.SortOrder, Is.GreaterThan(0));

                TestHelper.AssertPropertyValuesAreEqual(contentType, fetched, "yyyy-MM-dd HH:mm:ss", ignoreProperties: new[] { "UpdateDate" });
            }
        }
예제 #2
0
        public void CreateTestData()
        {
            //Create and Save ContentType "video" -> 1045
            var videoMediaType = MockedContentTypes.CreateVideoMediaType();

            ServiceContext.ContentTypeService.Save(videoMediaType);
        }
예제 #3
0
        public void Can_Delete_Container_Containing_Media_Types()
        {
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var containerRepository = CreateContainerRepository(provider);
                var repository          = CreateRepository(provider);

                var container = new EntityContainer(Constants.ObjectTypes.MediaType)
                {
                    Name = "blah"
                };
                containerRepository.Save(container);


                IMediaType contentType = MockedContentTypes.CreateVideoMediaType();
                contentType.ParentId = container.Id;
                repository.Save(contentType);


                // Act
                containerRepository.Delete(container);


                var found = containerRepository.Get(container.Id);
                Assert.IsNull(found);

                contentType = repository.Get(contentType.Id);
                Assert.IsNotNull(contentType);
                Assert.AreEqual(-1, contentType.ParentId);
            }
        }
예제 #4
0
        public void Can_Update_MediaType_With_PropertyType_Removed()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider);

                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.Save(mediaType);


                // Act
                var mediaTypeV2 = repository.Get(NodeDto.NodeIdSeed);
                mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title");
                repository.Save(mediaTypeV2);


                var mediaTypeV3 = repository.Get(NodeDto.NodeIdSeed);

                // Assert
                Assert.That(mediaTypeV3.PropertyTypes.Any(x => x.Alias == "title"), Is.False);
                Assert.That(mediaTypeV2.PropertyGroups.Count, Is.EqualTo(mediaTypeV3.PropertyGroups.Count));
                Assert.That(mediaTypeV2.PropertyTypes.Count(), Is.EqualTo(mediaTypeV3.PropertyTypes.Count()));
            }
        }
예제 #5
0
        public void Can_Update_MediaType_With_PropertyType_Removed()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();

            using (var repository = CreateRepository(unitOfWork))
            {
                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.AddOrUpdate(mediaType);
                unitOfWork.Commit();

                // Act
                var mediaTypeV2 = repository.Get(1045);
                mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title");
                repository.AddOrUpdate(mediaTypeV2);
                unitOfWork.Commit();

                var mediaTypeV3 = repository.Get(1045);

                // Assert
                Assert.That(mediaTypeV3.PropertyTypes.Any(x => x.Alias == "title"), Is.False);
                Assert.That(mediaTypeV2.PropertyGroups.Count, Is.EqualTo(mediaTypeV3.PropertyGroups.Count));
                Assert.That(mediaTypeV2.PropertyTypes.Count(), Is.EqualTo(mediaTypeV3.PropertyTypes.Count()));
            }
        }
예제 #6
0
        public void Cannot_Save_Media_With_Empty_Name()
        {
            // Arrange
            var mediaService = ServiceContext.MediaService;
            var mediaType    = MockedContentTypes.CreateVideoMediaType();

            ServiceContext.MediaTypeService.Save(mediaType);
            var media = mediaService.CreateMedia(string.Empty, -1, "video");

            // Act & Assert
            Assert.Throws <ArgumentException>(() => mediaService.Save(media));
        }
예제 #7
0
        public void Can_Move()
        {
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var containerRepository = CreateContainerRepository(provider);
                var repository          = CreateRepository(provider);

                var container1 = new EntityContainer(Constants.ObjectTypes.MediaType)
                {
                    Name = "blah1"
                };
                containerRepository.Save(container1);


                var container2 = new EntityContainer(Constants.ObjectTypes.MediaType)
                {
                    Name = "blah2", ParentId = container1.Id
                };
                containerRepository.Save(container2);


                var contentType = (IMediaType)MockedContentTypes.CreateVideoMediaType();
                contentType.ParentId = container2.Id;
                repository.Save(contentType);


                //create a
                var contentType2 = (IMediaType) new MediaType(contentType, "hello")
                {
                    Name = "Blahasdfsadf"
                };
                contentType.ParentId = contentType.Id;
                repository.Save(contentType2);


                var result = repository.Move(contentType, container1).ToArray();


                Assert.AreEqual(2, result.Length);

                //re-get
                contentType  = repository.Get(contentType.Id);
                contentType2 = repository.Get(contentType2.Id);

                Assert.AreEqual(container1.Id, contentType.ParentId);
                Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType.Id).OriginalPath, contentType.Path);
                Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType2.Id).OriginalPath, contentType2.Path);
            }
        }
        public void Can_Move()
        {
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();

            using (var containerRepository = CreateContainerRepository(unitOfWork))
                using (var repository = CreateRepository(unitOfWork))
                {
                    var container1 = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid)
                    {
                        Name = "blah1"
                    };
                    containerRepository.AddOrUpdate(container1);
                    unitOfWork.Commit();

                    var container2 = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid)
                    {
                        Name = "blah2", ParentId = container1.Id
                    };
                    containerRepository.AddOrUpdate(container2);
                    unitOfWork.Commit();

                    var contentType = (IMediaType)MockedContentTypes.CreateVideoMediaType();
                    contentType.ParentId = container2.Id;
                    repository.AddOrUpdate(contentType);
                    unitOfWork.Commit();

                    //create a
                    var contentType2 = (IMediaType) new MediaType(contentType, "hello")
                    {
                        Name = "Blahasdfsadf"
                    };
                    contentType.ParentId = contentType.Id;
                    repository.AddOrUpdate(contentType2);
                    unitOfWork.Commit();

                    var result = repository.Move(contentType, container1).ToArray();
                    unitOfWork.Commit();

                    Assert.AreEqual(2, result.Count());

                    //re-get
                    contentType  = repository.Get(contentType.Id);
                    contentType2 = repository.Get(contentType2.Id);

                    Assert.AreEqual(container1.Id, contentType.ParentId);
                    Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType.Id).OriginalPath, contentType.Path);
                    Assert.AreNotEqual(result.Single(x => x.Entity.Id == contentType2.Id).OriginalPath, contentType2.Path);
                }
        }
예제 #9
0
        public void Ensure_Content_Xml_Created()
        {
            var mediaService = ServiceContext.MediaService;
            var mediaType    = MockedContentTypes.CreateVideoMediaType();

            ServiceContext.MediaTypeService.Save(mediaType);
            var media = mediaService.CreateMedia("Test", -1, "video");

            mediaService.Save(media);

            using (var scope = ScopeProvider.CreateScope())
            {
                Assert.IsTrue(scope.Database.Exists <ContentXmlDto>(media.Id));
            }
        }
예제 #10
0
        public void Ensure_Content_Xml_Created()
        {
            var mediaService = ServiceContext.MediaService;
            var mediaType    = MockedContentTypes.CreateVideoMediaType();

            ServiceContext.ContentTypeService.Save(mediaType);
            var media = mediaService.CreateMedia("Test", -1, "video");

            mediaService.Save(media);

            var provider = new PetaPocoUnitOfWorkProvider(Logger);
            var uow      = provider.GetUnitOfWork();

            Assert.IsTrue(uow.Database.Exists <ContentXmlDto>(media.Id));
        }
예제 #11
0
        public void Can_Verify_PropertyTypes_On_Video_MediaType()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            var repository = RepositoryResolver.Current.ResolveByType <IMediaTypeRepository>(unitOfWork);
            var mediaType  = MockedContentTypes.CreateVideoMediaType();

            repository.AddOrUpdate(mediaType);
            unitOfWork.Commit();

            // Act
            var contentType = repository.Get(1045);

            // Assert
            Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(2));
            Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1));
        }
예제 #12
0
        public void Can_Perform_Add_On_MediaTypeRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();
            var repository = RepositoryResolver.Current.ResolveByType <IMediaTypeRepository>(unitOfWork);

            // Act
            var contentType = MockedContentTypes.CreateVideoMediaType();

            repository.AddOrUpdate(contentType);
            unitOfWork.Commit();

            // Assert
            Assert.That(contentType.HasIdentity, Is.True);
            Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True);
            Assert.That(contentType.Path.Contains(","), Is.True);
            Assert.That(contentType.SortOrder, Is.GreaterThan(0));
        }
예제 #13
0
        public void Can_Verify_PropertyTypes_On_Video_MediaType()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();

            using (var repository = CreateRepository(unitOfWork))
            {
                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.AddOrUpdate(mediaType);
                unitOfWork.Commit();

                // Act
                var contentType = repository.Get(NodeDto.NodeIdSeed);

                // Assert
                Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(2));
                Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1));
            }
        }
예제 #14
0
        public void Can_Verify_PropertyTypes_On_Video_MediaType()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider);

                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.Save(mediaType);


                // Act
                var contentType = repository.Get(NodeDto.NodeIdSeed);

                // Assert
                Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(2));
                Assert.That(contentType.PropertyGroups.Count(), Is.EqualTo(1));
            }
        }
예제 #15
0
        public void Can_Perform_Update_On_MediaTypeRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();

            using (var repository = CreateRepository(unitOfWork))
            {
                var videoMediaType = MockedContentTypes.CreateVideoMediaType();
                repository.AddOrUpdate(videoMediaType);
                unitOfWork.Commit();

                // Act
                var mediaType = repository.Get(1045);

                mediaType.Thumbnail = "Doc2.png";
                mediaType.PropertyGroups["Media"].PropertyTypes.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext)
                {
                    Alias                = "subtitle",
                    Name                 = "Subtitle",
                    Description          = "Optional Subtitle",
                    HelpText             = "",
                    Mandatory            = false,
                    SortOrder            = 1,
                    DataTypeDefinitionId = -88
                });
                repository.AddOrUpdate(mediaType);
                unitOfWork.Commit();

                var dirty = ((MediaType)mediaType).IsDirty();

                // Assert
                Assert.That(mediaType.HasIdentity, Is.True);
                Assert.That(dirty, Is.False);
                Assert.That(mediaType.Thumbnail, Is.EqualTo("Doc2.png"));
                Assert.That(mediaType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True);
            }
        }
예제 #16
0
        public void Can_Perform_Delete_On_MediaTypeRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider();
            var unitOfWork = provider.GetUnitOfWork();

            using (var repository = CreateRepository(unitOfWork))
            {
                // Act
                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.AddOrUpdate(mediaType);
                unitOfWork.Commit();

                var contentType2 = repository.Get(mediaType.Id);
                repository.Delete(contentType2);
                unitOfWork.Commit();

                var exists = repository.Exists(mediaType.Id);

                // Assert
                Assert.That(exists, Is.False);
            }
        }
        public void Can_Create_Container_Containing_Media_Types()
        {
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();

            using (var containerRepository = CreateContainerRepository(unitOfWork))
                using (var repository = CreateRepository(unitOfWork))
                {
                    var container = new EntityContainer(Constants.ObjectTypes.MediaTypeGuid)
                    {
                        Name = "blah"
                    };
                    containerRepository.AddOrUpdate(container);
                    unitOfWork.Commit();

                    var contentType = MockedContentTypes.CreateVideoMediaType();
                    contentType.ParentId = container.Id;
                    repository.AddOrUpdate(contentType);
                    unitOfWork.Commit();

                    Assert.AreEqual(container.Id, contentType.ParentId);
                }
        }
예제 #18
0
        public void Can_Perform_Update_On_MediaTypeRepository()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider);

                var videoMediaType = MockedContentTypes.CreateVideoMediaType();
                repository.Save(videoMediaType);


                // Act
                var mediaType = repository.Get(NodeDto.NodeIdSeed);

                mediaType.Thumbnail = "Doc2.png";
                mediaType.PropertyGroups["Media"].PropertyTypes.Add(new PropertyType("test", ValueStorageType.Ntext, "subtitle")
                {
                    Name        = "Subtitle",
                    Description = "Optional Subtitle",
                    Mandatory   = false,
                    SortOrder   = 1,
                    DataTypeId  = -88
                });
                repository.Save(mediaType);


                var dirty = ((MediaType)mediaType).IsDirty();

                // Assert
                Assert.That(mediaType.HasIdentity, Is.True);
                Assert.That(dirty, Is.False);
                Assert.That(mediaType.Thumbnail, Is.EqualTo("Doc2.png"));
                Assert.That(mediaType.PropertyTypes.Any(x => x.Alias == "subtitle"), Is.True);
            }
        }
        public void Can_Perform_Add_On_MediaTypeRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();

            using (var repository = CreateRepository(unitOfWork))
            {
                // Act
                var contentType = MockedContentTypes.CreateVideoMediaType();
                repository.AddOrUpdate(contentType);
                unitOfWork.Commit();

                var fetched = repository.Get(contentType.Id);

                // Assert
                Assert.That(contentType.HasIdentity, Is.True);
                Assert.That(contentType.PropertyGroups.All(x => x.HasIdentity), Is.True);
                Assert.That(contentType.Path.Contains(","), Is.True);
                Assert.That(contentType.SortOrder, Is.GreaterThan(0));

                TestHelper.AssertAllPropertyValuesAreEquals(contentType, fetched, "yyyy-MM-dd HH:mm:ss", ignoreProperties: new[] { "UpdateDate" });
            }
        }
예제 #20
0
        public void Can_Perform_Delete_On_MediaTypeRepository()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider);

                // Act
                var mediaType = MockedContentTypes.CreateVideoMediaType();
                repository.Save(mediaType);


                var contentType2 = repository.Get(mediaType.Id);
                repository.Delete(contentType2);


                var exists = repository.Exists(mediaType.Id);

                // Assert
                Assert.That(exists, Is.False);
            }
        }