public void GetIdPath_Returns_In_Correct_Order_For_Schemas() { //mock hive IReadonlyEntityRepositoryGroup <IContentStore> readonlyEntitySession; IReadonlySchemaRepositoryGroup <IContentStore> readonlySchemaSession; IEntityRepositoryGroup <IContentStore> entityRepository; ISchemaRepositoryGroup <IContentStore> schemaSession; var hive = MockHiveManager.GetManager().MockContentStore(out readonlyEntitySession, out readonlySchemaSession, out entityRepository, out schemaSession); var schema = new EntitySchema { Id = new HiveId(100) }; schemaSession.Get <EntitySchema>(Arg.Any <bool>(), Arg.Any <HiveId[]>()).Returns(new[] { schema }); schemaSession.GetAncestorRelations(new HiveId(100), FixedRelationTypes.DefaultRelationType) .Returns(new[] { new Relation(FixedRelationTypes.DefaultRelationType, new EntitySchema { Id = new HiveId(99) }, schema), new Relation(FixedRelationTypes.DefaultRelationType, new EntitySchema { Id = new HiveId(98) }, new EntitySchema { Id = new HiveId(99) }), new Relation(FixedRelationTypes.DefaultRelationType, new EntitySchema { Id = new HiveId(97) }, new EntitySchema { Id = new HiveId(98) }), }); using (var uow = hive.OpenWriter <IContentStore>()) { var path = uow.Repositories.Schemas.GetEntityPath <EntitySchema>(new HiveId(100), FixedRelationTypes.DefaultRelationType); Assert.AreEqual(new HiveId(97), path.ElementAt(0)); Assert.AreEqual(new HiveId(98), path.ElementAt(1)); Assert.AreEqual(new HiveId(99), path.ElementAt(2)); Assert.AreEqual(new HiveId(100), path.ElementAt(3)); } }
public void Initialize() { #region Vars IReadonlyEntityRepositoryGroup <IContentStore> readonlyContentStoreRepository; IReadonlySchemaRepositoryGroup <IContentStore> readonlyContentStoreSchemaRepository; IEntityRepositoryGroup <IContentStore> contentStoreRepository; ISchemaRepositoryGroup <IContentStore> contentStoreSchemaRepository; IReadonlyEntityRepositoryGroup <IFileStore> readonlyFileStoreRepository; IReadonlySchemaRepositoryGroup <IFileStore> readonlyFileStoreSchemaRepository; IEntityRepositoryGroup <IFileStore> fileStoreRepository; ISchemaRepositoryGroup <IFileStore> fileStoreSchemaRepository; #endregion var hive = MockHiveManager.GetManager() .MockContentStore(out readonlyContentStoreRepository, out readonlyContentStoreSchemaRepository, out contentStoreRepository, out contentStoreSchemaRepository) .MockFileStore(out readonlyFileStoreRepository, out readonlyFileStoreSchemaRepository, out fileStoreRepository, out fileStoreSchemaRepository); //Setup file store var fileId = new HiveId("storage", "file-uploader", new HiveIdValue("test.jpg")); var file = new File { Id = fileId, Name = "test.jpg", ContentBytes = Encoding.UTF8.GetBytes("test") }; readonlyFileStoreRepository .Get <File>(true, Arg.Any <HiveId[]>()) .Returns(new[] { file }); var thumbnailId = new HiveId("storage", "file-uploader", new HiveIdValue("test_100.jpg")); var thumbnail = new File { Id = thumbnailId, Name = "test_100.jpg", ContentBytes = Encoding.UTF8.GetBytes("test_100") }; var relation = Substitute.For <IReadonlyRelation <IRelatableEntity, IRelatableEntity> >(); relation.MetaData.Returns(new RelationMetaDataCollection(new[] { new RelationMetaDatum("size", "100") })); relation.Source.Returns(file); relation.SourceId.Returns(fileId); relation.Destination.Returns(thumbnail); relation.DestinationId.Returns(thumbnailId); readonlyFileStoreRepository.GetLazyChildRelations(fileId, FixedRelationTypes.ThumbnailRelationType) .Returns(new[] { relation }); //Setup media store var mediaPickerAttributeDefType = new AttributeType { RenderTypeProvider = CorePluginConstants.FileUploadPropertyEditorId }; var mediaPickerAttributeDef = new AttributeDefinition("rebelFile", "") { Id = FixedHiveIds.FileUploadAttributeType, AttributeType = mediaPickerAttributeDefType }; var mediaPickerProperty = new TypedAttribute(mediaPickerAttributeDef, fileId.ToString()); var mediaId = new HiveId("0A647849-BF5C-413B-9420-7AB4C9521505"); var mediaEntity = new TypedEntity { Id = mediaId }; //mediaEntity.SetupFromSchema(FixedSchemas.MediaImageSchema); mediaEntity.Attributes.Add(mediaPickerProperty); mediaEntity.Attributes["rebelFile"].Values["MediaId"] = "0A647849-BF5C-413B-9420-7AB4C9521505"; //readonlyContentStoreRepository // .Get<TypedEntity>(true, Arg.Any<HiveId[]>()) // .Returns(new[] { mediaEntity }); //readonlyContentStoreRepository // .SingleOrDefault<TypedEntity>(Arg.Any<Expression<Func<TypedEntity, bool>>>()) // .Returns(mediaEntity); var mediaEntityList = new List <TypedEntity> { mediaEntity }; readonlyContentStoreRepository .Query() .Returns(mediaEntityList.AsQueryable()); // Setup application var appContext = Substitute.For <IRebelApplicationContext>(); appContext.Hive.Returns(hive); // Setup back office request _backOfficeRequestContext = Substitute.For <IBackOfficeRequestContext>(); _backOfficeRequestContext.Application.Returns(appContext); var member = new Member { Id = new HiveId("0285372B-AB14-45B6-943A-8709476AB655"), Username = "******" }; // Setup fake HttpContext (Just needed to fake current member) var identity = new GenericIdentity(member.Username); var user = new GenericPrincipal(identity, new string[0]); var wp = new SimpleWorkerRequest("/virtual", "c:\\inetpub\\wwwroot\\physical\\", "page.aspx", "query", new StringWriter()); HttpContext.Current = new HttpContext(wp) { User = user }; appContext.Security.Members.GetByUsername(member.Username).Returns(member); appContext.Security.PublicAccess.GetPublicAccessStatus(member.Id, mediaEntity.Id) .Returns(new PublicAccessStatusResult(mediaEntity.Id, true)); }
public void Initialize() { //Seup permissions _permissions = new Permission[] { new SavePermission(), new PublishPermission(), new HostnamesPermission(), new CopyPermission(), new MovePermission(), new BackOfficeAccessPermission() } .Select(x => new Lazy <Permission, PermissionMetadata>(() => x, new PermissionMetadata(new Dictionary <string, object> { { "Id", x.Id }, { "Name", x.Name }, { "Type", x.Type } }))); //Setup user groups _userGroups = new List <UserGroup> { new UserGroup { Id = new HiveId("9DB63B97-4C8F-489C-98C7-017DC6AD869A"), Name = "Administrator" }, new UserGroup { Id = new HiveId("F61E4B62-513B-4858-91BF-D873401AD3CA"), Name = "Editor" }, new UserGroup { Id = new HiveId("8B65EF91-D49B-43A3-AFD9-6A47D5341B7D"), Name = "Writter" } }; // Setup user id _userId = new HiveId("857BD0F6-49DC-4378-84C1-6CD8AE14301D"); //Setup content nodes _systemRootNode = new TypedEntity { Id = FixedHiveIds.SystemRoot }; _childContentNode = new TypedEntity { Id = new HiveId("00E55027-402F-41CF-9052-B8D8F3DBCD76") }; //Setup relations var systemRootPermissionRelations = new List <RelationById> { new RelationById( _userGroups.First().Id, _systemRootNode.Id, FixedRelationTypes.PermissionRelationType, 0, new RelationMetaDatum(FixedPermissionIds.BackOfficeAccess, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Copy, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Save, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Publish, PermissionStatus.Deny.ToString()), new RelationMetaDatum(FixedPermissionIds.Hostnames, PermissionStatus.Inherit.ToString()), new RelationMetaDatum(FixedPermissionIds.Move, PermissionStatus.Inherit.ToString()) ), new RelationById( _userGroups.Last().Id, _systemRootNode.Id, FixedRelationTypes.PermissionRelationType, 0, new RelationMetaDatum(FixedPermissionIds.Copy, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Save, PermissionStatus.Deny.ToString()), new RelationMetaDatum(FixedPermissionIds.Publish, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Hostnames, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Move, PermissionStatus.Inherit.ToString()) ) }; var childContentNodePermissionRelations = new List <RelationById> { new RelationById( _userGroups.Skip(1).First().Id, _childContentNode.Id, FixedRelationTypes.PermissionRelationType, 0, new RelationMetaDatum(FixedPermissionIds.BackOfficeAccess, PermissionStatus.Deny.ToString()), // Back office access is not an entity action so this should get ignored new RelationMetaDatum(FixedPermissionIds.Copy, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Save, PermissionStatus.Deny.ToString()), new RelationMetaDatum(FixedPermissionIds.Publish, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Hostnames, PermissionStatus.Allow.ToString()), new RelationMetaDatum(FixedPermissionIds.Move, PermissionStatus.Inherit.ToString()) ) }; var childContentNodeAncestorRelations = new List <RelationById> { new RelationById( _systemRootNode.Id, _childContentNode.Id, FixedRelationTypes.DefaultRelationType, 0) }; var userGroupRelations = new List <RelationById> { new RelationById( _userGroups.First().Id, _userId, FixedRelationTypes.UserGroupRelationType, 0), new RelationById( _userGroups.Skip(1).First().Id, _userId, FixedRelationTypes.UserGroupRelationType, 0), new RelationById( _userGroups.Last().Id, _userId, FixedRelationTypes.UserGroupRelationType, 0) }; _membershipService = Substitute.For <IMembershipService <User> >(); _membershipService.GetById(_userId, true).Returns(new User { Id = _userId, Username = "******", Groups = _userGroups.Select(x => x.Id).ToArray() }); //Setup hive _hive = MockHiveManager.GetManager() .MockContentStore(out _readonlyContentStoreSession, out _readonlyContentStoreSchemaSession, out _contentStoreRepository, out _contentStoreSchemaRepository) .MockSecurityStore(out _readonlySecurityStoreSession, out _readonlySecurityStoreSchemaSession, out _securityStoreRepository, out _securityStoreSchemaRepository); //Setup content store _readonlyContentStoreSession.Exists <TypedEntity>(HiveId.Empty).ReturnsForAnyArgs(true); _readonlySecurityStoreSession .Get <UserGroup>(true, Arg.Any <HiveId[]>()) .Returns(MockHiveManager.MockReturnForGet <UserGroup>()); _readonlyContentStoreSession .Get <UserGroup>(true, Arg.Any <HiveId[]>()) .Returns(MockHiveManager.MockReturnForGet <UserGroup>()); _securityStoreRepository .Get <UserGroup>(true, Arg.Any <HiveId[]>()) .Returns(MockHiveManager.MockReturnForGet <UserGroup>()); _contentStoreRepository .Get <UserGroup>(true, Arg.Any <HiveId[]>()) .Returns(MockHiveManager.MockReturnForGet <UserGroup>()); //Setup security store _readonlySecurityStoreSession.GetParentRelations(_systemRootNode.Id, FixedRelationTypes.PermissionRelationType).Returns(systemRootPermissionRelations); _readonlySecurityStoreSession.GetParentRelations(_childContentNode.Id, FixedRelationTypes.PermissionRelationType).Returns(childContentNodePermissionRelations); _readonlySecurityStoreSession.GetAncestorRelations(_childContentNode.Id, FixedRelationTypes.DefaultRelationType).Returns(childContentNodeAncestorRelations); _readonlySecurityStoreSession.GetParentRelations(_userId, FixedRelationTypes.UserGroupRelationType).Returns(userGroupRelations); _readonlySecurityStoreSession.Query <UserGroup>().Returns(x => Enumerable.Repeat(new UserGroup() { Name = "Administrator" }, 1).AsQueryable()); }
public void Initialize() { #region Vars IReadonlyEntityRepositoryGroup <IContentStore> readonlyContentStoreRepository; IReadonlySchemaRepositoryGroup <IContentStore> readonlyContentStoreSchemaRepository; IEntityRepositoryGroup <IContentStore> contentStoreRepository; ISchemaRepositoryGroup <IContentStore> contentStoreSchemaRepository; IReadonlyEntityRepositoryGroup <IFileStore> readonlyFileStoreRepository; IReadonlySchemaRepositoryGroup <IFileStore> readonlyFileStoreSchemaRepository; IEntityRepositoryGroup <IFileStore> fileStoreRepository; ISchemaRepositoryGroup <IFileStore> fileStoreSchemaRepository; #endregion var hive = MockHiveManager.GetManager() .MockContentStore(out readonlyContentStoreRepository, out readonlyContentStoreSchemaRepository, out contentStoreRepository, out contentStoreSchemaRepository) .MockFileStore(out readonlyFileStoreRepository, out readonlyFileStoreSchemaRepository, out fileStoreRepository, out fileStoreSchemaRepository); //Setup file store var fileId = new HiveId("storage", "file-uploader", new HiveIdValue("test.jpg")); var file = new File { Id = fileId, Name = "test.jpg", ContentBytes = Encoding.UTF8.GetBytes("test") }; readonlyFileStoreRepository .Get <File>(true, Arg.Any <HiveId[]>()) .Returns(new[] { file }); var thumbnailId = new HiveId("storage", "file-uploader", new HiveIdValue("test_100.jpg")); var thumbnail = new File { Id = thumbnailId, Name = "test_100.jpg", ContentBytes = Encoding.UTF8.GetBytes("test_100") }; var relation = Substitute.For <IReadonlyRelation <IRelatableEntity, IRelatableEntity> >(); relation.MetaData.Returns(new RelationMetaDataCollection(new[] { new RelationMetaDatum("size", "100") })); relation.Source.Returns(file); relation.SourceId.Returns(fileId); relation.Destination.Returns(thumbnail); relation.DestinationId.Returns(thumbnailId); readonlyFileStoreRepository.GetLazyChildRelations(fileId, FixedRelationTypes.ThumbnailRelationType) .Returns(new[] { relation }); //Setup media store var mediaPickerAttributeDefType = new AttributeType { RenderTypeProvider = CorePluginConstants.FileUploadPropertyEditorId }; var mediaPickerAttributeDef = new AttributeDefinition("umbracoFile", "") { Id = FixedHiveIds.FileUploadAttributeType, AttributeType = mediaPickerAttributeDefType }; var mediaPickerProperty = new TypedAttribute(mediaPickerAttributeDef, fileId.ToString()); var mediaId = new HiveId("0A647849-BF5C-413B-9420-7AB4C9521505"); var mediaEntity = new TypedEntity { Id = mediaId }; mediaEntity.Attributes.Add(mediaPickerProperty); //readonlyContentStoreRepository // .Get<TypedEntity>(true, Arg.Any<HiveId[]>()) // .Returns(new[] { mediaEntity }); //readonlyContentStoreRepository // .SingleOrDefault<TypedEntity>(Arg.Any<Expression<Func<TypedEntity, bool>>>()) // .Returns(mediaEntity); var mediaEntityList = new List <TypedEntity> { mediaEntity }; readonlyContentStoreRepository .Provider .Returns(mediaEntityList.AsQueryable().Provider); // Setup application var appContext = Substitute.For <IUmbracoApplicationContext>(); appContext.Hive.Returns(hive); // Setup back office request _backOfficeRequestContext = Substitute.For <IBackOfficeRequestContext>(); _backOfficeRequestContext.Application.Returns(appContext); }