~ifolder-dev/simias/trunk-packaging

« back to all changes in this revision

Viewing changes to test/CollectionStore/.svn/text-base/CollectionOwnerTests.cs.svn-base

  • Committer: Jorge O. Castro
  • Date: 2007-12-03 06:56:46 UTC
  • Revision ID: jorge@ubuntu.com-20071203065646-mupcnjcwgm5mnhyt
* Remove a bunch of .svn directories we no longer need.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***********************************************************************
2
 
 *  $RCSfile$
3
 
 *
4
 
 *  Copyright (C) 2005 Novell, Inc.
5
 
 *
6
 
 *  This program is free software; you can redistribute it and/or
7
 
 *  modify it under the terms of the GNU General Public
8
 
 *  License as published by the Free Software Foundation; either
9
 
 *  version 2 of the License, or (at your option) any later version.
10
 
 *
11
 
 *  This program is distributed in the hope that it will be useful,
12
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
 *  General Public License for more details.
15
 
 *
16
 
 *  You should have received a copy of the GNU General Public
17
 
 *  License along with this program; if not, write to the Free
18
 
 *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19
 
 *
20
 
 *  Author: Mike Lasky <mlasky@novell.com>
21
 
 *
22
 
 ***********************************************************************/
23
 
 
24
 
using System;
25
 
 
26
 
using Simias;
27
 
using Simias.Storage;
28
 
 
29
 
namespace Simias.Storage.Tests
30
 
{
31
 
        /// <summary>
32
 
        /// Class used to test the collection owner functionality.
33
 
        /// </summary>
34
 
        public class CollectionOwnerTests
35
 
        {
36
 
                #region Class Members
37
 
 
38
 
                private Store store;
39
 
 
40
 
                #endregion
41
 
 
42
 
                #region Properties
43
 
                #endregion
44
 
 
45
 
                #region Constructor
46
 
 
47
 
                /// <summary>
48
 
                /// Constructor
49
 
                /// </summary>
50
 
                /// <param name="store">Handle to the store.</param>
51
 
                public CollectionOwnerTests( Store store )
52
 
                {
53
 
                        this.store = store;
54
 
                }
55
 
 
56
 
                #endregion
57
 
 
58
 
                #region Private Methods
59
 
 
60
 
                private void NoOwnerTest()
61
 
                {
62
 
                        Collection c = new Collection( store, "NoOwnerTest", store.LocalDomain );
63
 
                        c.Proxy = true;
64
 
 
65
 
                        try
66
 
                        {
67
 
                                c.Commit();
68
 
                                throw new ApplicationException( "Collection was created without an owner." );
69
 
                        }
70
 
                        catch ( SimiasException )
71
 
                        {}
72
 
                }
73
 
 
74
 
                private void DeleteOwnerTest()
75
 
                {
76
 
                        Collection c = new Collection( store, "DeleteOwnerTest", store.LocalDomain );
77
 
                        c.Commit();
78
 
 
79
 
                        try
80
 
                        {
81
 
                                try
82
 
                                {
83
 
                                        c.Commit( c.Delete( c.Owner ) );
84
 
                                        throw new ApplicationException( "Collection owner was deleted." );
85
 
                                }
86
 
                                catch ( SimiasException )
87
 
                                {}
88
 
                        }
89
 
                        finally
90
 
                        {
91
 
                                c.Commit( c.Delete() );
92
 
                        }
93
 
                }
94
 
 
95
 
                private void MultiOwnerTest()
96
 
                {
97
 
                        Collection c = new Collection( store, "MultiOwnerTest", store.LocalDomain );
98
 
                        c.Commit();
99
 
 
100
 
                        try
101
 
                        {
102
 
                                Member member = new Member( "DuplicateMember", Guid.NewGuid().ToString(), Access.Rights.ReadOnly );
103
 
                                member.IsOwner = true;
104
 
 
105
 
                                try
106
 
                                {
107
 
                                        c.Commit( member );
108
 
                                        throw new ApplicationException( "More than one collection owner exists." );
109
 
                                }
110
 
                                catch ( SimiasException )
111
 
                                {}
112
 
                        }
113
 
                        finally
114
 
                        {
115
 
                                c.Commit( c.Delete() );
116
 
                        }
117
 
                }
118
 
 
119
 
                private void ChangeOwnerTest()
120
 
                {
121
 
                        Collection c = new Collection( store, "ChangeOwnerTest", store.LocalDomain );
122
 
                        c.Commit();
123
 
 
124
 
                        try
125
 
                        {
126
 
                                Member member = new Member( "NewOwner", Guid.NewGuid().ToString(), Access.Rights.ReadOnly );
127
 
                                c.Commit( member );
128
 
                                c.Commit( c.ChangeOwner( member, Access.Rights.ReadOnly ) );
129
 
                        }
130
 
                        finally
131
 
                        {
132
 
                                c.Commit( c.Delete() );
133
 
                        }
134
 
                }
135
 
 
136
 
                private void ChangeOwnerRights()
137
 
                {
138
 
                        Collection c = new Collection( store, "ChangeOwnerRightsTest", store.LocalDomain );
139
 
                        c.Commit();
140
 
 
141
 
                        try
142
 
                        {
143
 
                                Member owner = c.Owner;
144
 
                                owner.Rights = Access.Rights.ReadOnly;
145
 
                                try
146
 
                                {
147
 
                                        c.Commit( owner );
148
 
                                        throw new ApplicationException( "Downgraded collection owner's rights." );
149
 
                                }
150
 
                                catch ( SimiasException )
151
 
                                {}
152
 
                        }
153
 
                        finally
154
 
                        {
155
 
                                c.Commit( c.Delete() );
156
 
                        }
157
 
                }
158
 
 
159
 
                #endregion
160
 
 
161
 
                #region Public Methods
162
 
 
163
 
                /// <summary>
164
 
                /// Runs the collection owner tests.
165
 
                /// </summary>
166
 
                public void RunTests()
167
 
                {
168
 
                        // Create a collection without an owner.
169
 
                        NoOwnerTest();
170
 
 
171
 
                        // Delete the collection owner.
172
 
                        DeleteOwnerTest();
173
 
 
174
 
                        // Create more than one collection owner.
175
 
                        MultiOwnerTest();
176
 
 
177
 
                        // Change the collection owner.
178
 
                        ChangeOwnerTest();
179
 
 
180
 
                        // Try and change the owner rights.
181
 
                        ChangeOwnerRights();
182
 
                }
183
 
 
184
 
                #endregion
185
 
        }
186
 
}
 
 
b'\\ No newline at end of file'