Example #1
0
        public void RetrieveSubjectsForDirectory_InvalidDirectory(string d)
        {
            Collectors.SettingsProvider = MockProvider();

            var fProv = mocks.DynamicMock <IFilesStorageProviderV30>();

            mocks.Replay(fProv);
            AuthReader.RetrieveSubjectsForDirectory(fProv, d);
        }
Example #2
0
        public void RetrieveSubjectsForDirectory_Sub()
        {
            var mocks      = new MockRepository();
            var prov       = mocks.DynamicMock <ISettingsStorageProviderV30>();
            var filesProv  = mocks.DynamicMock <IFilesStorageProviderV30>();
            var aclManager = mocks.DynamicMock <IAclManager>();

            Expect.Call(prov.AclManager).Return(aclManager).Repeat.Any();

            var dirName = Actions.ForDirectories.ResourceMasterPrefix +
                          AuthTools.GetDirectoryName(filesProv, "/Dir/Sub/");

            Expect.Call(aclManager.RetrieveEntriesForResource(dirName)).Return(
                new[]
            {
                new AclEntry(dirName, Actions.ForDirectories.List, "U.User1", Value.Grant),
                new AclEntry(dirName, Actions.ForDirectories.UploadFiles, "U.User", Value.Grant),
                new AclEntry(dirName, Actions.ForDirectories.DownloadFiles, "G.Group", Value.Grant),
                new AclEntry(dirName, Actions.ForDirectories.CreateDirectories, "U.User", Value.Deny)
            });

            mocks.Replay(prov);
            mocks.Replay(aclManager);

            Collectors.SettingsProvider = prov;

            var infos = AuthReader.RetrieveSubjectsForDirectory(filesProv, "/Dir/Sub/");

            Assert.AreEqual(3, infos.Length, "Wrong info count");

            Array.Sort(infos, delegate(SubjectInfo x, SubjectInfo y) { return(x.Name.CompareTo(y.Name)); });
            Assert.AreEqual("Group", infos[0].Name, "Wrong subject name");
            Assert.AreEqual(SubjectType.Group, infos[0].Type, "Wrong subject type");
            Assert.AreEqual("User", infos[1].Name, "Wrong subject name");
            Assert.AreEqual(SubjectType.User, infos[1].Type, "Wrong subject type");
            Assert.AreEqual("User1", infos[2].Name, "Wrong subject name");
            Assert.AreEqual(SubjectType.User, infos[2].Type, "Wrong subject type");

            mocks.Verify(prov);
            mocks.Verify(aclManager);
        }