public void As_ActiveUserDifferences_Will_Return_A_Concat_Of_Active_UserDifferenceObjects_And_RoleDifferenceObjects() { var store = new XpoUserModelDictionaryDifferenceStore( Isolate.Fake.Instance<XafApplication>()); var userDifferenceObject1 = new UserModelDifferenceObject(Session.DefaultSession); var queryUserDifferenceObject = Isolate.Fake.InstanceAndSwapAll<QueryUserModelDifferenceObject>(); Isolate.WhenCalled(() => queryUserDifferenceObject.GetActiveModelDifferences("")).WillReturn(new List<UserModelDifferenceObject> { userDifferenceObject1 }.AsQueryable()); var roleDifferenceObject = new RoleModelDifferenceObject(Session.DefaultSession); var queryRoleDifferenceObject = Isolate.Fake.InstanceAndSwapAll<QueryRoleModelDifferenceObject>(); Isolate.WhenCalled(() => queryRoleDifferenceObject.GetActiveModelDifferences("")).WillReturn(new List<RoleModelDifferenceObject> { roleDifferenceObject }.AsQueryable()); IQueryable<ModelDifferenceObject> queryable = store.GetActiveDifferenceObjects(); Assert.AreEqual(2, queryable.Count()); Assert.AreEqual(userDifferenceObject1, queryable.ToList()[1]); Assert.AreEqual(roleDifferenceObject, queryable.ToList()[0]); }
public void ActiveDifferenceObjectsRoles_Will_Be_All_ModelDifferenceObjectsObjects_that_are_OfRoleType_And_That_At_Leat_One_of_Their_Roles_Is_Current_User_Role() { Isolate.Fake.ISecurityComplex(); var role = new Role(Session.DefaultSession); role.Save(); ((User)SecuritySystem.CurrentUser).Roles.Add(role); XafTypesInfo.Instance.RegisterEntity(typeof(RoleModelDifferenceObject)); RoleDifferenceObjectBuilder.CreateDynamicMembers(Isolate.Fake.Instance<ISecurityComplex>()); new ModelDifferenceObject(Session.DefaultSession){PersistentApplication = new PersistentApplication(Session.DefaultSession)}.Save(); var roleDifferenceObjectsObject1 = new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication =new PersistentApplication(Session.DefaultSession) { UniqueName = "AppName" } }; ((XPCollection)roleDifferenceObjectsObject1.GetMemberValue("Roles")).Add(role); roleDifferenceObjectsObject1.Save(); var roleDifferenceObjectsObject2 = new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication = new PersistentApplication(Session.DefaultSession) { UniqueName = "AppName" } }; roleDifferenceObjectsObject2.Save(); ((XPCollection)roleDifferenceObjectsObject2.GetMemberValue("Roles")).Add(role); new RoleModelDifferenceObject(Session.DefaultSession) { PersistentApplication = new PersistentApplication(Session.DefaultSession){ Name = "AppName" } }.Save(); IQueryable<RoleModelDifferenceObject> queryable = new QueryRoleModelDifferenceObject(Session.DefaultSession).GetActiveModelDifferences("AppName"); Assert.AreEqual(2, queryable.Count()); }