Exemplo n.º 1
0
        /// <summary>
        /// Creates a bunch of content/media items return relation objects for them (unsaved)
        /// </summary>
        /// <param name="count"></param>
        /// <returns></returns>
        private IEnumerable <IRelation> CreateRelations(int count)
        {
            var rs     = ServiceContext.RelationService;
            var rtName = Guid.NewGuid().ToString();
            var rt     = new RelationType(rtName, rtName, false, null, null);

            rs.Save(rt);

            var ct = MockedContentTypes.CreateBasicContentType();

            ServiceContext.ContentTypeService.Save(ct);

            var mt = MockedContentTypes.CreateImageMediaType("img");

            ServiceContext.MediaTypeService.Save(mt);

            return(Enumerable.Range(1, count).Select(index =>
            {
                var c1 = MockedContent.CreateBasicContent(ct);
                var c2 = MockedMedia.CreateMediaImage(mt, -1);
                ServiceContext.ContentService.Save(c1);
                ServiceContext.MediaService.Save(c2);

                return new Relation(c1.Id, c2.Id, rt);
            }).ToList());
        }
Exemplo n.º 2
0
        public void QueryMedia_ContentTypeIdFilter()
        {
            // Arrange
            var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
            var provider        = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                // Act
                for (int i = 0; i < 10; i++)
                {
                    var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1);
                    repository.Save(folder);
                }


                var types  = new[] { 1031 };
                var query  = scope.SqlContext.Query <IMedia>().Where(x => types.Contains(x.ContentTypeId));
                var result = repository.Get(query);

                // Assert
                Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
            }
        }
Exemplo n.º 3
0
        public override void CreateTestData()
        {
            if (_isSetup == false)
            {
                _isSetup = true;

                base.CreateTestData();

                //Create and Save folder-Media -> 1050
                var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
                var folder          = MockedMedia.CreateMediaFolder(folderMediaType, -1);
                ServiceContext.MediaService.Save(folder, 0);
                folderId = folder.Id;

                //Create and Save image-Media -> 1051
                var imageMediaType = ServiceContext.MediaTypeService.Get(1032);
                var image          = MockedMedia.CreateMediaImage(imageMediaType, folder.Id);
                ServiceContext.MediaService.Save(image, 0);

                //Create and Save file-Media -> 1052
                var fileMediaType = ServiceContext.MediaTypeService.Get(1033);
                var file          = MockedMedia.CreateMediaFile(fileMediaType, folder.Id);
                ServiceContext.MediaService.Save(file, 0);

                var subfolder = MockedMedia.CreateMediaFolder(folderMediaType, folder.Id);
                ServiceContext.MediaService.Save(subfolder, 0);
                var subfolder2 = MockedMedia.CreateMediaFolder(folderMediaType, subfolder.Id);
                ServiceContext.MediaService.Save(subfolder2, 0);
            }
        }
        public void EntityService_Can_Get_Paged_Media_Descendants_With_Search()
        {
            var folderType     = ServiceContext.ContentTypeService.GetMediaType(1031);
            var imageMediaType = ServiceContext.ContentTypeService.GetMediaType(1032);

            var root = MockedMedia.CreateMediaFolder(folderType, -1);

            ServiceContext.MediaService.Save(root);

            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedMedia.CreateMediaImage(imageMediaType, root.Id);
                c1.Name = "ssss" + Guid.NewGuid();
                ServiceContext.MediaService.Save(c1);

                for (int j = 0; j < 5; j++)
                {
                    var c2 = MockedMedia.CreateMediaImage(imageMediaType, c1.Id);
                    c2.Name = "tttt" + Guid.NewGuid();
                    ServiceContext.MediaService.Save(c2);
                }
            }

            var service = ServiceContext.EntityService;

            long total;
            var  entities = service.GetPagedDescendants(root.Id, UmbracoObjectTypes.Media, 0, 10, out total, filter: "ssss").ToArray();

            Assert.That(entities.Length, Is.EqualTo(10));
            Assert.That(total, Is.EqualTo(10));
            entities = service.GetPagedDescendants(root.Id, UmbracoObjectTypes.Media, 0, 50, out total, filter: "tttt").ToArray();
            Assert.That(entities.Length, Is.EqualTo(50));
            Assert.That(total, Is.EqualTo(50));
        }
Exemplo n.º 5
0
        public void Can_Perform_Multiple_Adds_On_MediaRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();
            MediaTypeRepository mediaTypeRepository;

            using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository))
            {
                var mediaType = mediaTypeRepository.Get(1032);
                var file      = MockedMedia.CreateMediaFile(mediaType, -1);

                // Act
                repository.AddOrUpdate(file);
                unitOfWork.Commit();

                var image = MockedMedia.CreateMediaImage(mediaType, -1);
                repository.AddOrUpdate(image);
                unitOfWork.Commit();

                // Assert
                Assert.That(file.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);
                Assert.That(file.Name, Is.EqualTo("Test File"));
                Assert.That(image.Name, Is.EqualTo("Test Image"));
                Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id));
                Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id));
            }
        }
Exemplo n.º 6
0
        public void Rebuild_All_Xml_Structures()
        {
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();
            MediaTypeRepository mediaTypeRepository;

            using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository))
            {
                var mediaType = mediaTypeRepository.Get(1032);

                for (var i = 0; i < 100; i++)
                {
                    var image = MockedMedia.CreateMediaImage(mediaType, -1);
                    repository.AddOrUpdate(image);
                }
                unitOfWork.Commit();

                //delete all xml
                unitOfWork.Database.Execute("DELETE FROM cmsContentXml");
                Assert.AreEqual(0, unitOfWork.Database.ExecuteScalar <int>("SELECT COUNT(*) FROM cmsContentXml"));

                repository.RebuildXmlStructures(media => new XElement("test"), 10);

                Assert.AreEqual(103, unitOfWork.Database.ExecuteScalar <int>("SELECT COUNT(*) FROM cmsContentXml"));
            }
        }
Exemplo n.º 7
0
        public void Get_Property_Value_Uses_Converter()
        {
            var mType = MockedContentTypes.CreateImageMediaType();

            //lets add an RTE to this
            mType.PropertyGroups.First().PropertyTypes.Add(
                new PropertyType(Guid.Parse(Constants.PropertyEditors.TinyMCEv3), DataTypeDatabaseType.Nvarchar)
            {
                Alias = "content",
                Name  = "Rich Text",
                DataTypeDefinitionId = -87         //tiny mce
            });
            ServiceContext.ContentTypeService.Save(mType);
            var media = MockedMedia.CreateMediaImage(mType, -1);

            media.Properties["content"].Value = "<div>This is some content</div>";
            ServiceContext.MediaService.Save(media);

            var publishedMedia = GetNode(media.Id);

            var propVal = publishedMedia.GetPropertyValue("content");

            Assert.IsInstanceOf <IHtmlString>(propVal);
            Assert.AreEqual("<div>This is some content</div>", propVal.ToString());

            var propVal2 = publishedMedia.GetPropertyValue <IHtmlString>("content");

            Assert.IsInstanceOf <IHtmlString>(propVal2);
            Assert.AreEqual("<div>This is some content</div>", propVal2.ToString());

            var propVal3 = publishedMedia.GetPropertyValue("Content");

            Assert.IsInstanceOf <IHtmlString>(propVal3);
            Assert.AreEqual("<div>This is some content</div>", propVal3.ToString());
        }
Exemplo n.º 8
0
        private IRelation CreateAndSaveRelation(string name, string alias)
        {
            var rs = ServiceContext.RelationService;
            var rt = new RelationType(name, alias, false, null, null);

            rs.Save(rt);

            var ct = MockedContentTypes.CreateBasicContentType();

            ServiceContext.ContentTypeService.Save(ct);

            var mt = MockedContentTypes.CreateImageMediaType("img");

            ServiceContext.MediaTypeService.Save(mt);

            var c1 = MockedContent.CreateBasicContent(ct);
            var c2 = MockedMedia.CreateMediaImage(mt, -1);

            ServiceContext.ContentService.Save(c1);
            ServiceContext.MediaService.Save(c2);

            var r = new Relation(c1.Id, c2.Id, rt);

            ServiceContext.RelationService.Save(r);

            return(r);
        }
Exemplo n.º 9
0
        public void Get_Property_Value_Uses_Converter()
        {
            var mType = MockedContentTypes.CreateImageMediaType("image2");

            //lets add an RTE to this
            mType.PropertyGroups.First().PropertyTypes.Add(
                new PropertyType("test", ValueStorageType.Nvarchar, "content")
            {
                Name       = "Rich Text",
                DataTypeId = -87         //tiny mce
            });
            ServiceContext.MediaTypeService.Save(mType);
            var media = MockedMedia.CreateMediaImage(mType, -1);

            media.Properties["content"].SetValue("<div>This is some content</div>");
            ServiceContext.MediaService.Save(media);

            var publishedMedia = GetNode(media.Id);

            var propVal = publishedMedia.Value("content");

            Assert.IsInstanceOf <IHtmlString>(propVal);
            Assert.AreEqual("<div>This is some content</div>", propVal.ToString());

            var propVal2 = publishedMedia.Value <IHtmlString>("content");

            Assert.IsInstanceOf <IHtmlString>(propVal2);
            Assert.AreEqual("<div>This is some content</div>", propVal2.ToString());

            var propVal3 = publishedMedia.Value("Content");

            Assert.IsInstanceOf <IHtmlString>(propVal3);
            Assert.AreEqual("<div>This is some content</div>", propVal3.ToString());
        }
Exemplo n.º 10
0
        private Tuple <IMedia, IMedia, IMedia, IMedia, IMedia> CreateTrashedTestMedia()
        {
            //Create and Save folder-Media -> 1050
            var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
            var folder          = MockedMedia.CreateMediaFolder(folderMediaType, -1);

            ServiceContext.MediaService.Save(folder);

            //Create and Save folder-Media -> 1051
            var folder2 = MockedMedia.CreateMediaFolder(folderMediaType, -1);

            ServiceContext.MediaService.Save(folder2);

            //Create and Save image-Media  -> 1052
            var imageMediaType = ServiceContext.MediaTypeService.Get(1032);
            var image          = (Media)MockedMedia.CreateMediaImage(imageMediaType, 1050);

            ServiceContext.MediaService.Save(image);

            //Create and Save folder-Media that is trashed -> 1053
            var folderTrashed = (Media)MockedMedia.CreateMediaFolder(folderMediaType, -21);

            folderTrashed.Trashed = true;
            ServiceContext.MediaService.Save(folderTrashed);

            //Create and Save image-Media child of folderTrashed -> 1054
            var imageTrashed = (Media)MockedMedia.CreateMediaImage(imageMediaType, folderTrashed.Id);

            imageTrashed.Trashed = true;
            ServiceContext.MediaService.Save(imageTrashed);


            return(new Tuple <IMedia, IMedia, IMedia, IMedia, IMedia>(folder, folder2, image, folderTrashed, imageTrashed));
        }
Exemplo n.º 11
0
        public void Can_Perform_Add_On_MediaRepository()
        {
            // Arrange
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();
            MediaTypeRepository mediaTypeRepository;

            using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository))
            {
                var mediaType = mediaTypeRepository.Get(1032);
                var image     = MockedMedia.CreateMediaImage(mediaType, -1);

                // Act
                mediaTypeRepository.AddOrUpdate(mediaType);
                repository.AddOrUpdate(image);
                unitOfWork.Commit();

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

                // Assert
                Assert.That(mediaType.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);

                TestHelper.AssertAllPropertyValuesAreEquals(image, fetched, "yyyy-MM-dd HH:mm:ss");
            }
        }
Exemplo n.º 12
0
        public void Can_Perform_GetByQuery_On_MediaRepository_With_ContentType_Alias_Filter()
        {
            // Arrange
            var folderMediaType = ServiceContext.ContentTypeService.GetMediaType(1031);
            var provider        = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork      = provider.GetUnitOfWork();
            MediaTypeRepository mediaTypeRepository;

            using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository))
            {
                // Act
                for (int i = 0; i < 10; i++)
                {
                    var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1);
                    repository.AddOrUpdate(folder);
                }
                unitOfWork.Commit();

                var types = new[] { "Folder" };
                var query = Query <IMedia> .Builder.Where(x => types.Contains(x.ContentType.Alias));

                var result = repository.GetByQuery(query);

                // Assert
                Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
            }
        }
Exemplo n.º 13
0
        public void SaveMedia()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                MediaTypeRepository mediaTypeRepository;
                var repository = CreateRepository(provider, out mediaTypeRepository);

                var mediaType = mediaTypeRepository.Get(1032);
                var image     = MockedMedia.CreateMediaImage(mediaType, -1);

                // Act
                mediaTypeRepository.Save(mediaType);
                repository.Save(image);

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

                // Assert
                Assert.That(mediaType.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);

                TestHelper.AssertPropertyValuesAreEqual(image, fetched, "yyyy-MM-dd HH:mm:ss");
            }
        }
Exemplo n.º 14
0
        public void Rebuild_Some_Xml_Structures()
        {
            var provider   = new PetaPocoUnitOfWorkProvider(Logger);
            var unitOfWork = provider.GetUnitOfWork();
            MediaTypeRepository mediaTypeRepository;

            using (var repository = CreateRepository(unitOfWork, out mediaTypeRepository))
            {
                var mediaType = mediaTypeRepository.Get(1032);

                IMedia img50 = null;
                for (var i = 0; i < 100; i++)
                {
                    var image = MockedMedia.CreateMediaImage(mediaType, -1);
                    repository.AddOrUpdate(image);
                    if (i == 50)
                    {
                        img50 = image;
                    }
                }
                unitOfWork.Commit();

                // assume this works (see other test)
                repository.RebuildXmlStructures(media => new XElement("test"), 10);

                //delete some xml
                unitOfWork.Database.Execute("DELETE FROM cmsContentXml WHERE nodeId < " + img50.Id);
                Assert.AreEqual(50, unitOfWork.Database.ExecuteScalar <int>("SELECT COUNT(*) FROM cmsContentXml"));

                repository.RebuildXmlStructures(media => new XElement("test"), 10);

                Assert.AreEqual(103, unitOfWork.Database.ExecuteScalar <int>("SELECT COUNT(*) FROM cmsContentXml"));
            }
        }
Exemplo n.º 15
0
        public void EntityService_Can_Get_Paged_Media_Descendants()
        {
            var folderType     = ServiceContext.MediaTypeService.Get(1031);
            var imageMediaType = ServiceContext.MediaTypeService.Get(1032);

            var root = MockedMedia.CreateMediaFolder(folderType, -1);

            ServiceContext.MediaService.Save(root);
            var count = 0;

            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedMedia.CreateMediaImage(imageMediaType, root.Id);
                ServiceContext.MediaService.Save(c1);
                count++;

                for (int j = 0; j < 5; j++)
                {
                    var c2 = MockedMedia.CreateMediaImage(imageMediaType, c1.Id);
                    ServiceContext.MediaService.Save(c2);
                    count++;
                }
            }

            var service = ServiceContext.EntityService;

            long total;
            var  entities = service.GetPagedDescendants(root.Id, UmbracoObjectTypes.Media, 0, 31, out total).ToArray();

            Assert.That(entities.Length, Is.EqualTo(31));
            Assert.That(total, Is.EqualTo(60));
            entities = service.GetPagedDescendants(root.Id, UmbracoObjectTypes.Media, 1, 31, out total).ToArray();
            Assert.That(entities.Length, Is.EqualTo(29));
            Assert.That(total, Is.EqualTo(60));
        }
Exemplo n.º 16
0
        public void SaveMediaMultiple()
        {
            // Arrange
            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                MediaTypeRepository mediaTypeRepository;
                var repository = CreateRepository(provider, out mediaTypeRepository);

                var mediaType = mediaTypeRepository.Get(1032);
                var file      = MockedMedia.CreateMediaFile(mediaType, -1);

                // Act
                repository.Save(file);

                var image = MockedMedia.CreateMediaImage(mediaType, -1);
                repository.Save(image);

                // Assert
                Assert.That(file.HasIdentity, Is.True);
                Assert.That(image.HasIdentity, Is.True);
                Assert.That(file.Name, Is.EqualTo("Test File"));
                Assert.That(image.Name, Is.EqualTo("Test Image"));
                Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id));
                Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id));
            }
        }
Exemplo n.º 17
0
        public void Get_Paged_Parent_Child_Entities_With_Same_Entity_Relation()
        {
            //Create a media item and create a relationship between itself (parent -> child)
            var imageType = MockedContentTypes.CreateImageMediaType("myImage");

            ServiceContext.MediaTypeService.Save(imageType);
            var media = MockedMedia.CreateMediaImage(imageType, -1);

            ServiceContext.MediaService.Save(media);
            var relType = ServiceContext.RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);

            ServiceContext.RelationService.Relate(media.Id, media.Id, relType);

            var provider = TestObjects.GetScopeProvider(Logger);

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

                // Get parent entities for child id
                var parents = repository.GetPagedParentEntitiesByChildId(media.Id, 0, 10, out var totalRecords).ToList();
                Assert.AreEqual(1, totalRecords);
                Assert.AreEqual(1, parents.Count);

                // Get child entities for parent id
                var children = repository.GetPagedChildEntitiesByParentId(media.Id, 0, 10, out totalRecords).ToList();
                Assert.AreEqual(1, totalRecords);
                Assert.AreEqual(1, children.Count);
            }
        }
Exemplo n.º 18
0
        public void EntityService_Can_Get_Paged_Media_Children()
        {
            var folderType     = ServiceContext.MediaTypeService.Get(1031);
            var imageMediaType = ServiceContext.MediaTypeService.Get(1032);

            var root = MockedMedia.CreateMediaFolder(folderType, -1);

            ServiceContext.MediaService.Save(root);
            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedMedia.CreateMediaImage(imageMediaType, root.Id);
                ServiceContext.MediaService.Save(c1);
            }

            var service = ServiceContext.EntityService;

            long total;
            var  entities = service.GetPagedChildren(root.Id, UmbracoObjectTypes.Media, 0, 6, out total).ToArray();

            Assert.That(entities.Length, Is.EqualTo(6));
            Assert.That(total, Is.EqualTo(10));
            entities = service.GetPagedChildren(root.Id, UmbracoObjectTypes.Media, 1, 6, out total).ToArray();
            Assert.That(entities.Length, Is.EqualTo(4));
            Assert.That(total, Is.EqualTo(10));
        }
Exemplo n.º 19
0
        public void QueryMedia_ContentTypeAliasFilter()
        {
            // we could support this, but it would require an extra join on the query,
            // and we don't absolutely need it now, so leaving it out for now

            // Arrange
            var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
            var provider        = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);

                // Act
                for (int i = 0; i < 10; i++)
                {
                    var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1);
                    repository.Save(folder);
                }


                var types  = new[] { "Folder" };
                var query  = scope.SqlContext.Query <IMedia>().Where(x => types.Contains(x.ContentType.Alias));
                var result = repository.Get(query);

                // Assert
                Assert.That(result.Count(), Is.GreaterThanOrEqualTo(11));
            }
        }
Exemplo n.º 20
0
        public void Can_Perform_Multiple_Adds_On_MediaRepository_With_RepositoryResolver()
        {
            // Arrange
            var provider            = new PetaPocoUnitOfWorkProvider();
            var unitOfWork          = provider.GetUnitOfWork();
            var mediaTypeRepository = RepositoryResolver.Current.ResolveByType <IMediaTypeRepository>(unitOfWork);
            var repository          = RepositoryResolver.Current.ResolveByType <IMediaRepository>(unitOfWork);

            var mediaType = mediaTypeRepository.Get(1032);
            var file      = MockedMedia.CreateMediaFile(mediaType, -1);

            // Act
            repository.AddOrUpdate(file);
            unitOfWork.Commit();

            var image = MockedMedia.CreateMediaImage(mediaType, -1);

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

            // Assert
            Assert.That(file.HasIdentity, Is.True);
            Assert.That(image.HasIdentity, Is.True);
            Assert.That(file.Name, Is.EqualTo("Test File"));
            Assert.That(image.Name, Is.EqualTo("Test Image"));
            Assert.That(file.ContentTypeId, Is.EqualTo(mediaType.Id));
            Assert.That(image.ContentTypeId, Is.EqualTo(mediaType.Id));
        }
Exemplo n.º 21
0
        public void Get_Paged_Children_With_Media_Type_Filter()
        {
            var mediaService = ServiceContext.MediaService;
            var mediaType1   = MockedContentTypes.CreateImageMediaType("Image2");

            ServiceContext.MediaTypeService.Save(mediaType1);
            var mediaType2 = MockedContentTypes.CreateImageMediaType("Image3");

            ServiceContext.MediaTypeService.Save(mediaType2);

            for (int i = 0; i < 10; i++)
            {
                var m1 = MockedMedia.CreateMediaImage(mediaType1, -1);
                mediaService.Save(m1);
                var m2 = MockedMedia.CreateMediaImage(mediaType2, -1);
                mediaService.Save(m2);
            }

            long total;
            var  result = ServiceContext.MediaService.GetPagedChildren(-1, 0, 11, out total,
                                                                       SqlContext.Query <IMedia>().Where(x => new[] { mediaType1.Id, mediaType2.Id }.Contains(x.ContentTypeId)),
                                                                       Ordering.By("SortOrder", Direction.Ascending));

            Assert.AreEqual(11, result.Count());
            Assert.AreEqual(20, total);

            result = ServiceContext.MediaService.GetPagedChildren(-1, 1, 11, out total,
                                                                  SqlContext.Query <IMedia>().Where(x => new[] { mediaType1.Id, mediaType2.Id }.Contains(x.ContentTypeId)),
                                                                  Ordering.By("SortOrder", Direction.Ascending));
            Assert.AreEqual(9, result.Count());
            Assert.AreEqual(20, total);
        }
Exemplo n.º 22
0
        public void Can_Generate_Xml_Representation_Of_Media()
        {
            // Arrange
            var mediaType = MockedContentTypes.CreateImageMediaType("image2");

            ServiceContext.MediaTypeService.Save(mediaType);

            // reference, so static ctor runs, so event handlers register
            // and then, this will reset the width, height... because the file does not exist, of course ;-(
            var loggerFactory   = NullLoggerFactory.Instance;
            var scheme          = Mock.Of <IMediaPathScheme>();
            var contentSettings = new ContentSettings();

            var mediaFileManager = new MediaFileManager(Mock.Of <IFileSystem>(), scheme,
                                                        loggerFactory.CreateLogger <MediaFileManager>(), ShortStringHelper);
            var ignored = new FileUploadPropertyEditor(DataValueEditorFactory, mediaFileManager, Microsoft.Extensions.Options.Options.Create(contentSettings), DataTypeService, LocalizationService, LocalizedTextService, UploadAutoFillProperties, ContentService);

            var media = MockedMedia.CreateMediaImage(mediaType, -1);

            media.WriterId = -1; // else it's zero and that's not a user and it breaks the tests
            ServiceContext.MediaService.Save(media, Constants.Security.SuperUserId);

            // so we have to force-reset these values because the property editor has cleared them
            media.SetValue(Constants.Conventions.Media.Width, "200");
            media.SetValue(Constants.Conventions.Media.Height, "200");
            media.SetValue(Constants.Conventions.Media.Bytes, "100");
            media.SetValue(Constants.Conventions.Media.Extension, "png");

            var nodeName = media.ContentType.Alias.ToSafeAlias(ShortStringHelper);
            var urlName  = media.GetUrlSegment(ShortStringHelper, new[] { new DefaultUrlSegmentProvider(ShortStringHelper) });

            // Act
            XElement element = media.ToXml(Factory.GetRequiredService <IEntityXmlSerializer>());

            // Assert
            Assert.That(element, Is.Not.Null);
            Assert.That(element.Name.LocalName, Is.EqualTo(nodeName));
            Assert.AreEqual(media.Id.ToString(), (string)element.Attribute("id"));
            Assert.AreEqual(media.ParentId.ToString(), (string)element.Attribute("parentID"));
            Assert.AreEqual(media.Level.ToString(), (string)element.Attribute("level"));
            Assert.AreEqual(media.SortOrder.ToString(), (string)element.Attribute("sortOrder"));
            Assert.AreEqual(media.CreateDate.ToString("s"), (string)element.Attribute("createDate"));
            Assert.AreEqual(media.UpdateDate.ToString("s"), (string)element.Attribute("updateDate"));
            Assert.AreEqual(media.Name, (string)element.Attribute("nodeName"));
            Assert.AreEqual(urlName, (string)element.Attribute("urlName"));
            Assert.AreEqual(media.Path, (string)element.Attribute("path"));
            Assert.AreEqual("", (string)element.Attribute("isDoc"));
            Assert.AreEqual(media.ContentType.Id.ToString(), (string)element.Attribute("nodeType"));
            Assert.AreEqual(media.GetCreatorProfile(ServiceContext.UserService).Name, (string)element.Attribute("writerName"));
            Assert.AreEqual(media.CreatorId.ToString(), (string)element.Attribute("writerID"));
            Assert.IsNull(element.Attribute("template"));

            Assert.AreEqual(media.Properties[Constants.Conventions.Media.File].GetValue().ToString(), element.Elements(Constants.Conventions.Media.File).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Width].GetValue().ToString(), element.Elements(Constants.Conventions.Media.Width).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Height].GetValue().ToString(), element.Elements(Constants.Conventions.Media.Height).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Bytes].GetValue().ToString(), element.Elements(Constants.Conventions.Media.Bytes).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Extension].GetValue().ToString(), element.Elements(Constants.Conventions.Media.Extension).Single().Value);
        }
Exemplo n.º 23
0
        public void To_Media_Item_Dto()
        {
            var contentType = MockedContentTypes.CreateImageMediaType();
            var content     = MockedMedia.CreateMediaImage(contentType, -1);

            var result = Mapper.Map <IMedia, ContentItemDto <IMedia> >(content);

            AssertContentItem(result, content);
        }
Exemplo n.º 24
0
        public void Is_Media_In_Recycle_Bin(string path, bool isInBin)
        {
            var mediaType = MockedContentTypes.CreateImageMediaType();
            var media     = MockedMedia.CreateMediaFile(mediaType, -1);

            media.Path = path;
            media.Id   = 34;

            Assert.AreEqual(isInBin, media.IsInRecycleBin());
        }
Exemplo n.º 25
0
        private void CreateTestDataForPagingTests(out List <IContent> createdContent, out List <IMember> createdMembers, out List <IMedia> createdMedia)
        {
            //Create content
            createdContent = new List <IContent>();
            var contentType = MockedContentTypes.CreateBasicContentType("blah");

            ServiceContext.ContentTypeService.Save(contentType);
            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedContent.CreateBasicContent(contentType);
                ServiceContext.ContentService.Save(c1);
                createdContent.Add(c1);
            }

            //Create media
            createdMedia = new List <IMedia>();
            var imageType = MockedContentTypes.CreateImageMediaType("myImage");

            ServiceContext.MediaTypeService.Save(imageType);
            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedMedia.CreateMediaImage(imageType, -1);
                ServiceContext.MediaService.Save(c1);
                createdMedia.Add(c1);
            }

            // Create members
            var memberType = MockedContentTypes.CreateSimpleMemberType("simple");

            ServiceContext.MemberTypeService.Save(memberType);
            createdMembers = MockedMember.CreateSimpleMember(memberType, 10).ToList();
            ServiceContext.MemberService.Save(createdMembers);

            var relType = ServiceContext.RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);

            // Relate content to media
            foreach (var content in createdContent)
            {
                foreach (var media in createdMedia)
                {
                    ServiceContext.RelationService.Relate(content.Id, media.Id, relType);
                }
            }
            // Relate members to media
            foreach (var member in createdMembers)
            {
                foreach (var media in createdMedia)
                {
                    ServiceContext.RelationService.Relate(member.Id, media.Id, relType);
                }
            }
        }
Exemplo n.º 26
0
        public void Can_Generate_Xml_Representation_Of_Media()
        {
            // Arrange
            var mediaType = MockedContentTypes.CreateImageMediaType("image2");

            ServiceContext.ContentTypeService.Save(mediaType);

            // reference, so static ctor runs, so event handlers register
            // and then, this will reset the width, height... because the file does not exist, of course ;-(
            var ignored = new FileUploadPropertyEditor();

            var media = MockedMedia.CreateMediaImage(mediaType, -1);

            ServiceContext.MediaService.Save(media, 0);

            // so we have to force-reset these values because the property editor has cleared them
            media.SetValue(Constants.Conventions.Media.Width, "200");
            media.SetValue(Constants.Conventions.Media.Height, "200");
            media.SetValue(Constants.Conventions.Media.Bytes, "100");
            media.SetValue(Constants.Conventions.Media.Extension, "png");

            var nodeName = media.ContentType.Alias.ToSafeAliasWithForcingCheck();
            var urlName  = media.GetUrlSegment();

            // Act
            XElement element = media.ToXml();

            // Assert
            Assert.That(element, Is.Not.Null);
            Assert.That(element.Name.LocalName, Is.EqualTo(nodeName));
            Assert.AreEqual(media.Id.ToString(), (string)element.Attribute("id"));
            Assert.AreEqual(media.ParentId.ToString(), (string)element.Attribute("parentID"));
            Assert.AreEqual(media.Level.ToString(), (string)element.Attribute("level"));
            Assert.AreEqual(media.SortOrder.ToString(), (string)element.Attribute("sortOrder"));
            Assert.AreEqual(media.CreateDate.ToString("s"), (string)element.Attribute("createDate"));
            Assert.AreEqual(media.UpdateDate.ToString("s"), (string)element.Attribute("updateDate"));
            Assert.AreEqual(media.Name, (string)element.Attribute("nodeName"));
            Assert.AreEqual(urlName, (string)element.Attribute("urlName"));
            Assert.AreEqual(media.Path, (string)element.Attribute("path"));
            Assert.AreEqual("", (string)element.Attribute("isDoc"));
            Assert.AreEqual(media.ContentType.Id.ToString(), (string)element.Attribute("nodeType"));
            Assert.AreEqual(media.GetCreatorProfile().Name, (string)element.Attribute("writerName"));
            Assert.AreEqual(media.CreatorId.ToString(), (string)element.Attribute("writerID"));
            Assert.AreEqual(media.Version.ToString(), (string)element.Attribute("version"));
            Assert.AreEqual("0", (string)element.Attribute("template"));

            Assert.AreEqual(media.Properties[Constants.Conventions.Media.File].Value.ToString(), element.Elements(Constants.Conventions.Media.File).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Width].Value.ToString(), element.Elements(Constants.Conventions.Media.Width).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Height].Value.ToString(), element.Elements(Constants.Conventions.Media.Height).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Bytes].Value.ToString(), element.Elements(Constants.Conventions.Media.Bytes).Single().Value);
            Assert.AreEqual(media.Properties[Constants.Conventions.Media.Extension].Value.ToString(), element.Elements(Constants.Conventions.Media.Extension).Single().Value);
        }
Exemplo n.º 27
0
        public void Get_Paged_Relations_By_Relation_Type()
        {
            //Create content
            var createdContent = new List <IContent>();
            var contentType    = MockedContentTypes.CreateBasicContentType("blah");

            ServiceContext.ContentTypeService.Save(contentType);
            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedContent.CreateBasicContent(contentType);
                ServiceContext.ContentService.Save(c1);
                createdContent.Add(c1);
            }

            //Create media
            var createdMedia = new List <IMedia>();
            var imageType    = MockedContentTypes.CreateImageMediaType("myImage");

            ServiceContext.MediaTypeService.Save(imageType);
            for (int i = 0; i < 10; i++)
            {
                var c1 = MockedMedia.CreateMediaImage(imageType, -1);
                ServiceContext.MediaService.Save(c1);
                createdMedia.Add(c1);
            }

            var relType = ServiceContext.RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);

            // Relate content to media
            foreach (var content in createdContent)
            {
                foreach (var media in createdMedia)
                {
                    ServiceContext.RelationService.Relate(content.Id, media.Id, relType);
                }
            }

            var paged = ServiceContext.RelationService.GetPagedByRelationTypeId(relType.Id, 0, 51, out var totalRecs).ToList();

            Assert.AreEqual(100, totalRecs);
            Assert.AreEqual(51, paged.Count);

            //next page
            paged.AddRange(ServiceContext.RelationService.GetPagedByRelationTypeId(relType.Id, 1, 51, out totalRecs));

            Assert.AreEqual(100, totalRecs);
            Assert.AreEqual(100, paged.Count);

            Assert.IsTrue(createdContent.Select(x => x.Id).ContainsAll(paged.Select(x => x.ParentId)));
            Assert.IsTrue(createdMedia.Select(x => x.Id).ContainsAll(paged.Select(x => x.ChildId)));
        }
Exemplo n.º 28
0
        public void To_Media_Item_Dto()
        {
            var contentType = MockedContentTypes.CreateImageMediaType();
            var content     = MockedMedia.CreateMediaImage(contentType, -1);

            FixUsers(content);

            var result = Mapper.Map <IMedia, ContentPropertyCollectionDto>(content);

            foreach (var p in content.Properties)
            {
                AssertProperty(result, p);
            }
        }
Exemplo n.º 29
0
        public void To_Media_Item_Simple()
        {
            var contentType = MockedContentTypes.CreateImageMediaType();
            var content     = MockedMedia.CreateMediaImage(contentType, -1);

            var result = Mapper.Map <IMedia, ContentItemBasic <ContentPropertyBasic, IMedia> >(content);

            AssertBasics(result, content);

            foreach (var p in content.Properties)
            {
                AssertBasicProperty(result, p);
            }
        }
Exemplo n.º 30
0
        public void CacheActiveForIntsAndGuids()
        {
            MediaTypeRepository mediaTypeRepository;

            var realCache = new AppCaches(
                new ObjectCacheAppCache(),
                new DictionaryAppCache(),
                new IsolatedCaches(t => new ObjectCacheAppCache()));

            var provider = TestObjects.GetScopeProvider(Logger);

            using (var scope = provider.CreateScope())
            {
                var repository = CreateRepository(provider, out mediaTypeRepository, appCaches: realCache);

                var udb = (UmbracoDatabase)scope.Database;

                udb.EnableSqlCount = false;

                var mediaType = MockedContentTypes.CreateSimpleMediaType("umbTextpage1", "Textpage");
                mediaTypeRepository.Save(mediaType);

                var media = MockedMedia.CreateSimpleMedia(mediaType, "hello", -1);
                repository.Save(media);

                udb.EnableSqlCount = true;

                //go get it, this should already be cached since the default repository key is the INT
                var found = repository.Get(media.Id);
                Assert.AreEqual(0, udb.SqlCount);
                //retrieve again, this should use cache
                found = repository.Get(media.Id);
                Assert.AreEqual(0, udb.SqlCount);

                //reset counter
                udb.EnableSqlCount = false;
                udb.EnableSqlCount = true;

                //now get by GUID, this won't be cached yet because the default repo key is not a GUID
                found = repository.Get(media.Key);
                var sqlCount = udb.SqlCount;
                Assert.Greater(sqlCount, 0);
                //retrieve again, this should use cache now
                found = repository.Get(media.Key);
                Assert.AreEqual(sqlCount, udb.SqlCount);
            }
        }