ConfMan-Test.st
'From VisualWorks® NonCommercial, 7.3.1 of April 20, 2005 on December 26, 2005 at 1:19:39 am'!
"Package ConfMan-Test*"!
Smalltalk defineClass: #ArticleTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'anArticle '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
ArticleTest comment:
'ArticleTest
Instance Variables:
anArticle <Object | Proxy> description of anArticle
'!
Smalltalk defineClass: #CommentTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aComment '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
CommentTest comment:
'CommentTest
Instance Variables:
aComment <Comment> description of aComment
'!
Smalltalk defineClass: #KeywordsContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #objects
private: false
instanceVariableNames: 'keywordsContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
KeywordsContainerTest comment:
'KeywordsContainerTest
Instance Variables:
keywordsContainer <KeywordsContainer> description of keywordsContainer
'!
Smalltalk defineClass: #RoomsContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aRoomsContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
Smalltalk defineClass: #ConferenceContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aConferenceContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
ConferenceContainerTest comment:
'ConferenceContainerTest
Instance Variables:
aConferenceContainer <ConferenceContainer> description of aConferenceContainer
'!
Smalltalk defineClass: #ScheduleTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aSchedule '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
Smalltalk defineClass: #UserTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'anUser '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
UserTest comment:
'UserTest
Instance Variables:
anUser <User> description of anUser
'!
Smalltalk defineClass: #MembershipManagerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'memberMgr '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
MembershipManagerTest comment:
'MembershipManagerTest
Instance Variables:
memberMgr <MembershipManager> description of memberMgr
'!
Smalltalk defineClass: #GroupManagerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aGroupManager '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
GroupManagerTest comment:
'GroupManagerTest
Instance Variables:
aGroupManager <GroupManager> description of aGroupManager
'!
Smalltalk defineClass: #ConferenceManagerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aConferenceManager '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
ConferenceManagerTest comment:
'ConferenceManagerTest
Instance Variables:
aConferenceManager <ConferenceManager> description of aConferenceManager
'!
Smalltalk defineClass: #TalkTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aTalk '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
Smalltalk defineClass: #GroupTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aGroup '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
GroupTest comment:
'GroupTest
Instance Variables:
aGroup <Conference | Group | User> description of aGroup
'!
Smalltalk defineClass: #SecureObjectTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'anObject '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
SecureObjectTest comment:
'SecureObjectTest
Instance Variables:
anObject <SecureObject | WAPermissionManagerView> description of anObject
'!
Smalltalk defineClass: #UserManagerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'anUserManager '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
UserManagerTest comment:
'UserManagerTest
Instance Variables:
anUserManager <UserManager> description of anUserManager
'!
Smalltalk defineClass: #LocationsContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aLocationsContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
Smalltalk defineClass: #ArticleContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'anArticleContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
ArticleContainerTest comment:
'ArticleContainerTest
Instance Variables:
anArticleContainer <Object | Proxy> description of anArticleContainer
'!
Smalltalk defineClass: #ConferenceTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aConference '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
ConferenceTest comment:
'ConferenceTest
Instance Variables:
aConference <Conference> description of aConference
'!
Smalltalk defineClass: #PermissionManagerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'permMgr memberMgr '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
PermissionManagerTest comment:
'PermissionManagerTest
Instance Variables:
memberMgr <MembershipManager> description of memberMgr
permMgr <PermissionManager> description of permMgr
'!
Smalltalk defineClass: #LocationTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aLocation '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
Smalltalk defineClass: #CommentContainerTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #objects
private: false
instanceVariableNames: 'aCommentContainer '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan'!
CommentContainerTest comment:
'CommentContainerTest
Instance Variables:
aCommentContainer <Object | Proxy> description of aCommentContainer
'!
Smalltalk defineClass: #RoomTest
superclass: #{XProgramming.SUnit.TestCase}
indexedType: #none
private: false
instanceVariableNames: 'aRoom '
classInstanceVariableNames: ''
imports: ''
category: 'ConfMan-Test'!
!ConferenceTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!ConferenceTest methodsFor: 'testing'!
testConferenceLecturer
| user1 |
user1 := (User new initialize)
name: 'user1';
login: 'login'.
aConference lecturer: user1 login.
self assert: (aConference membershipManager isMemberOfGroup: 'Lecturers'
userLogin: 'login')!
testConferenceArticleContainer
| artCont |
artCont := ArticleContainer new initialize.
aConference articleContainer: artCont.
self assert: aConference articleContainer = artCont!
testConferenceAddKeyword
aConference addKeyword: 'key1'.
aConference addKeyword: 'key2'.
aConference addKeyword: 'key3'.
self assert: (aConference keywords includes: 'key1').
self assert: (aConference keywords includes: 'key2').
self assert: (aConference keywords includes: 'key3')!
testConferenceArticleDeadline
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference articleDeadline: aDate.
self assert: aConference articleDeadline = aDate!
testConferenceName
aConference name: 'conference'.
self assert: aConference name = 'conference'!
testConferenceInitGroups
self
assert: (aConference membershipManager groupDictionary
includesKey: 'Reviewer') .
self
assert: (aConference membershipManager groupDictionary
includesKey: 'Lecturers')!
testConferenceValidate
| user1 |
self should: [aConference validate] raise: TestResult error.
aConference name: 'user1'.
aConference articleDeadline: (Date
newDay: 1
month: 'January'
year: 2010).
aConference commentsDeadline: (Date
newDay: 2
month: 'January'
year: 2010).
aConference notificationDeadline: (Date
newDay: 3
month: 'January'
year: 2010).
aConference beginDate: (Date
newDay: 4
month: 'January'
year: 2010).
aConference endDate: (Date
newDay: 5
month: 'January'
year: 2010).
user1 := (User new initialize)
name: 'user1';
login: 'login'.
aConference lecturer: user1 login.
self shouldnt: [aConference validate] raise: TestResult error.
aConference name: nil.
self should: [aConference validate] raise: TestResult error.
aConference name: 'user1'.
aConference articleDeadline: (Date
newDay: 1
month: 'January'
year: 2000).
self should: [aConference validate] raise: TestResult error.
aConference articleDeadline: (Date
newDay: 1
month: 'January'
year: 2010).
aConference commentsDeadline: (Date
newDay: 2
month: 'January'
year: 2009).
self should: [aConference validate] raise: TestResult error.
aConference commentsDeadline: (Date
newDay: 2
month: 'January'
year: 2010).
aConference notificationDeadline: (Date
newDay: 3
month: 'January'
year: 2009).
self should: [aConference validate] raise: TestResult error.
aConference notificationDeadline: (Date
newDay: 3
month: 'January'
year: 2010).
aConference beginDate: (Date
newDay: 4
month: 'January'
year: 2009).
self should: [aConference validate] raise: TestResult error.
aConference beginDate: (Date
newDay: 4
month: 'January'
year: 2010).
aConference endDate: (Date
newDay: 5
month: 'January'
year: 2009).
self should: [aConference validate] raise: TestResult error.
aConference endDate: (Date
newDay: 5
month: 'January'
year: 2010).
aConference lecturer: nil.
self should: [aConference validate] raise: TestResult error!
testCommentsDeadline
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference commentsDeadline: aDate.
self assert: aConference commentsDeadline = aDate!
testConferenceExpirationDate
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference expirationDate: aDate.
self assert: aConference expirationDate = aDate!
testConferenceNotificationDeadline
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference notificationDeadline: aDate.
self assert: aConference notificationDeadline = aDate!
testConferenceInitPermissions
self assert: (aConference permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((aConference permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((aConference permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self
assert: ((aConference permissionManager permissionDictionary at: 'View')
includes: 'Anonymous').
self assert: (aConference permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((aConference permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((aConference permissionManager permissionDictionary at: 'Modify')
includes: 'Lecturers').
self assert: (aConference permissionManager permissionDictionary
includesKey: 'Mail article author').
self
assert: ((aConference permissionManager permissionDictionary at: 'Mail article author')
includes: 'Lecturers').
self assert: (aConference permissionManager permissionDictionary
includesKey: 'Review').
self
assert: ((aConference permissionManager permissionDictionary at: 'Review')
includes: 'Reviewer').
self assert: (aConference permissionManager permissionDictionary
includesKey: 'Delete').
self
assert: ((aConference permissionManager permissionDictionary at: 'Delete')
includes: 'Admin').
self
assert: ((aConference permissionManager permissionDictionary at: 'Delete')
includes: 'Lecturers')!
testConferenceKeywords
| keys |
keys := Set new.
keys add: 'key1'.
keys add: 'key2'.
aConference keywords: keys.
self assert: (aConference keywords includes: 'key1').
self assert: (aConference keywords includes: 'key2').!
testConferenceModify
| conf1 |
conf1 := Conference new initialize.
conf1 name: 'conf1'.
conf1 keywords: #('key1' 'key2').
conf1 articleDeadline: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 commentsDeadline: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 notificationDeadline: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 beginDate: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 endDate: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 expirationDate: (Date
newDay: 25
month: 'December'
year: 2005).
conf1 lecturer: 'root'.
aConference modify: conf1.
self assert: aConference name = 'conf1'.
self assert: (aConference keywords includes: 'key1').
self assert: (aConference keywords includes: 'key2').
self
assert: aConference articleDeadline = (Date
newDay: 25
month: 'December'
year: 2005).
self
assert: aConference commentsDeadline = (Date
newDay: 25
month: 'December'
year: 2005).
self
assert: aConference notificationDeadline = (Date
newDay: 25
month: 'December'
year: 2005).
self
assert: aConference beginDate = (Date
newDay: 25
month: 'December'
year: 2005).
self
assert: aConference endDate = (Date
newDay: 25
month: 'December'
year: 2005).
self
assert: aConference expirationDate = (Date
newDay: 25
month: 'December'
year: 2005).
self assert: aConference lecturer = 'root'!
testConferenceBeginDate
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference beginDate: aDate.
self assert: aConference beginDate = aDate!
testConferenceEndDate
| aDate |
aDate := Date
newDay: 25
month: 'December'
year: 2005.
aConference endDate: aDate.
self assert: aConference endDate = aDate!
testConferenceInit
self assert: aConference name = nil.
self assert: aConference keywords isEmpty" size = 0".
self assert: aConference articleContainer size = 0.
self assert: (aConference membershipManager isGroup: 'Reviewer') .
self assert: (aConference membershipManager isGroup: 'Lecturers') .
self assert: (aConference membershipManager isGroup: 'Logged User') .
self assert: (aConference membershipManager isGroup: 'Anonymous') .
self assert: (aConference membershipManager isGroup: 'Admin') .
self assert: aConference articleContainer size = 0.
self assert: aConference articleDeadline size = 0.
self assert: aConference beginDate isNil.
self assert: aConference commentsDeadline isNil.
self assert: aConference endDate isNil.
self assert: aConference keywords size = 0.
self assert: aConference lecturer isNil.
self assert: aConference name isNil.
self assert: aConference notificationDeadline isNil! !
!ConferenceTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aConference := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aConference := Conference new initialize.! !
!ScheduleTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!ScheduleTest methodsFor: 'testing'!
testScheduleAddTalk
| talk |
talk := Talk new initialize article: 'article'.
aSchedule addTalk: talk.
self assert: (aSchedule talks includes: talk)!
testScheduleInit
aSchedule talks isEmpty! !
!ScheduleTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
aSchedule := Schedule new initialize.! !
!RoomTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!RoomTest methodsFor: 'testing'!
testRoomCapacity
aRoom capacity: 1.
self assert: aRoom capacity = 1!
testRoomName
aRoom name: 'name'.
self assert: aRoom name = 'name'!
testRoomInitPermissions
self
assert: (aRoom permissionManager permissionDictionary includesKey: 'View').
self assert: (aRoom permissionManager permissionDictionary
includesKey: 'Delete').
self assert: ((aRoom permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self assert: ((aRoom permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self
assert: ((aRoom permissionManager permissionDictionary at: 'Delete')
includes: 'Admin').
self
assert: ((aRoom permissionManager permissionDictionary at: 'Delete')
includes: 'Owner')!
testRoomValidate
self should: [aRoom validate] raise: TestResult error.
aRoom name: 'name'.
self should: [aRoom validate] raise: TestResult error.
aRoom capacity: 1.
self shouldnt: [aRoom validate] raise: TestResult error! !
!RoomTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aRoom := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aRoom := Room new initialize.! !
!TalkTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!TalkTest methodsFor: 'testing'!
testTalkDateTimeBegin
| aDate |
aDate := Squeak.DateAndTime
year: 2005
month: 12
day: 25
hour: 0
minute: 0.
aTalk dateTimeBegin: aDate.
self assert: aTalk dateTimeBegin = aDate!
testTalkArticle
aTalk article: 'article'.
self assert: aTalk article = 'article'!
testTalkValidate
aTalk dateTimeEnd: (Date
newDay: 1
month: 'January'
year: 2010).
aTalk dateTimeBegin: (Date
newDay: 2
month: 'January'
year: 2010).
self should: [aTalk validate] raise: TestResult error.
aTalk dateTimeEnd: (Date
newDay: 3
month: 'January'
year: 2010).
self shouldnt: [aTalk validate] raise: TestResult error.!
testTalkDateTimeEnd
| aDate |
aDate := Squeak.DateAndTime
year: 2005
month: 12
day: 25
hour: 0
minute: 0.
aTalk dateTimeEnd: aDate.
self assert: aTalk dateTimeEnd = aDate!
testTalkRoom
aTalk room: 'room'.
self assert: aTalk room = 'room'! !
!TalkTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
aTalk := Talk new initialize.! !
!ConferenceContainerTest methodsFor: 'testing'!
testConfConGetConfObjects
| conf |
conf := Conference new initialize name: 'conf1'.
aConferenceContainer addConference: conf.
self assert: aConferenceContainer getConferencesObjects size = 1.
self assert: (aConferenceContainer getConferencesObjects includes: conf)!
testConfConInit
self assert: aConferenceContainer conferences isEmpty.
self assert: aConferenceContainer sharedKeywords isEmpty!
testConfConGetConfId
| conf conf2|
conf := Conference new initialize name: 'conf1'.
conf2 := Conference new initialize name: 'conf2'.
aConferenceContainer addConference: conf.
aConferenceContainer addConference: conf2.
self assert: (aConferenceContainer getConferencesId includes: 1) .
self assert: (aConferenceContainer getConferencesId includes: 2)!
testConfConSharedKeywords
"Testing setting of conferenceManager shared keywords"
| aSet |
aSet := Set new.
aSet add: 'testsharedkeyb'.
aSet add: 'testsharedkeya'.
aConferenceContainer sharedKeywords: aSet.
self assert: (aConferenceContainer sharedKeywords includes: 'testsharedkeyb').
self assert: (aConferenceContainer sharedKeywords includes: 'testsharedkeya').
self assert: aConferenceContainer sharedKeywords size = 2!
testConfConDeleteConference
| conf |
conf := Conference new initialize name: 'conf1'.
aConferenceContainer addConference: conf.
aConferenceContainer deleteConference: conf.
self assert: aConferenceContainer conferences isEmpty!
testConfConInitPerm
self
assert: (aConferenceContainer permissionManager permissionDictionary
includesKey: 'View') .
self
assert: ((aConferenceContainer permissionManager permissionDictionary
at: 'View')
includes: 'Admin';
includes: 'Logged User';
includes: 'Anonymous').
self
assert: (aConferenceContainer permissionManager permissionDictionary
includesKey: 'Modify') .
self
assert: ((aConferenceContainer permissionManager permissionDictionary
at: 'Modify') includes: 'Admin';
includes: 'Logged User').
self
assert: (aConferenceContainer permissionManager permissionDictionary
includesKey: 'Add Conference') .
self
assert: ((aConferenceContainer permissionManager permissionDictionary
at: 'Add Conference') includes: 'Admin';
includes: 'Logged User').!
testConfConHasConference
| conf |
self deny: (aConferenceContainer hasConference) .
conf := Conference new initialize name: 'conf1'.
aConferenceContainer addConference: conf.
self assert: (aConferenceContainer hasConference)!
testConfConAddConference
| conf conf2|
conf := Conference new initialize name: 'conf1'.
conf2 := Conference new initialize name: 'conf2'.
aConferenceContainer addConference: conf.
self assert: aConferenceContainer conferences size = 1.
self assert: ((aConferenceContainer conferences) includes: conf).
aConferenceContainer addConference: conf2.
self assert: aConferenceContainer conferences size = 2.
self assert: ((aConferenceContainer conferences) includes: conf2).
aConferenceContainer addConference: conf2.
self assert: aConferenceContainer conferences size = 3.
self assert: ((aConferenceContainer conferences) includes: conf2).!
testConfConAddSharedKeywords
"Testing setting of conferenceManager shared keywords"
self assert: (aConferenceContainer sharedKeywords isEmpty ).
aConferenceContainer addSharedKeyword: 'testsharedkeyb'.
aConferenceContainer addSharedKeyword: 'testsharedkeya'.
self assert: (aConferenceContainer sharedKeywords includes: 'testsharedkeya').
self assert: (aConferenceContainer sharedKeywords size = 2).!
testConfConGetConf
| conf |
conf := Conference new initialize name: 'conf1'.
aConferenceContainer addConference: conf.
self assert: ((aConferenceContainer getConference: 1) ) = conf! !
!ConferenceContainerTest methodsFor: 'initialize-release'!
setUp
"Setup up TestCase"
aConferenceContainer := ConferenceContainer new initialize!
initialize
^self! !
!CommentContainerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!CommentContainerTest methodsFor: 'testing'!
testCommentContAddComment
| comment |
comment := Comment new initialize.
aCommentContainer addComment: comment.
self assert: (aCommentContainer comments includes: comment)!
testCommentContRemove
| comment |
comment := Comment new initialize.
aCommentContainer addComment: comment.
aCommentContainer deleteComment: comment.
self assert: aCommentContainer size = 0!
testCommentContInit
self assert: aCommentContainer size = 0!
testCommentContComments
| conts comment |
conts := Set new.
comment := Comment new initialize.
conts add: comment.
aCommentContainer comments: conts.
self assert: (aCommentContainer comments includes: comment)!
testCommentContInitPermissions
self assert: (aCommentContainer permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((aCommentContainer permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((aCommentContainer permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self assert: (aCommentContainer permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((aCommentContainer permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self assert: (aCommentContainer permissionManager permissionDictionary
includesKey: 'Add Comment').
self
assert: ((aCommentContainer permissionManager permissionDictionary at: 'Add Comment')
includes: 'Admin').
self
assert: ((aCommentContainer permissionManager permissionDictionary at: 'Add Comment')
includes: 'Logged User')!
testCommentContHasComment
| comment |
self deny: aCommentContainer hasComment .
comment := Comment new initialize.
aCommentContainer addComment: comment.
self assert: aCommentContainer hasComment! !
!CommentContainerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aCommentContainer := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aCommentContainer := CommentContainer new initialize.! !
!ArticleTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!ArticleTest methodsFor: 'testing'!
testArticleComments
| comment |
comment := Comment new initialize.
anArticle comments: comment.
self assert: (anArticle comments = comment)!
testArticleUser
| user |
user := User new initialize name: 'usr'; login: 'login'.
anArticle user: user.
self assert: anArticle user = user.
self
assert: (anArticle membershipManager isMemberOfGroup: 'Owner'
userLogin: 'login')!
testArticleInitPermissions
self assert: (anArticle permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((anArticle permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((anArticle permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self
assert: ((anArticle permissionManager permissionDictionary at: 'View')
includes: 'Anonymous').
self assert: (anArticle permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((anArticle permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((anArticle permissionManager permissionDictionary at: 'Modify')
includes: 'Owner').
self assert: (anArticle permissionManager permissionDictionary
includesKey: 'Review').
self
assert: ((anArticle permissionManager permissionDictionary at: 'Review')
includes: 'Acquire')!
testArticleKeywords
| keys |
keys := Set new.
keys add: 'key1'.
keys add: 'key2'.
anArticle keywords: keys.
self assert: (anArticle keywords includes: 'key1').
self assert: (anArticle keywords includes: 'key2').!
testArticleModify
"Tests the modification of an article"
| anArt keys |
keys := Set new.
keys add: 'key1'.
anArticle keywords: keys.
anArticle title: 'title'.
anArticle data: 'data1'.
anArticle keywords: keys.
anArt := Article new initialize.
anArt title: 'title2'.
anArt data: 'data2'.
keys add: 'key2'.
anArt keywords: keys.
anArticle modify: anArt.
self assert: (anArticle title = 'title2').
self assert: anArticle data = 'data2'.
self assert: (anArticle keywords includes: 'key2')!
testArticleInitGroups
self assert: (anArticle membershipManager isGroup: 'Owner')!
testArticleData
anArticle data: 'plentyofdata'.
self assert: anArticle data = 'plentyofdata'!
testArticleInit
self assert: (anArticle keywords size = 0).
self assert: (anArticle comments size = 0).!
testArticleTitle
anArticle title: 'atitle'.
self assert: (anArticle title = 'atitle').!
testArticleValidate
self should: [anArticle validate] raise: TestResult error.
anArticle title: 'title'.
self should: [anArticle validate] raise: TestResult error.
anArticle data: 'data'.
self shouldnt: [anArticle validate] raise: TestResult error!
testAverageRating
| aComment aComment2 |
aComment := Comment new initialize rating: 2.
aComment2 := Comment new initialize rating: 4.
anArticle addComment: aComment.
anArticle addComment: aComment2.
self assert: (anArticle averageRating = 3).!
testArticleAddComment
| aComment |
aComment := Comment new initialize.
anArticle addComment: aComment.
self assert: (anArticle comments comments includes: aComment).! !
!ArticleTest methodsFor: 'initialize-release'!
setUp
anArticle := Article new initialize.!
initialize
anArticle := nil.
^self! !
!ConferenceManagerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!ConferenceManagerTest methodsFor: 'testing'!
testConfManConfContainer
| aConfContainer |
aConfContainer := ConferenceContainer new initialize.
aConferenceManager confContainer: aConfContainer.
self assert: aConferenceManager confContainer = aConfContainer!
testConfManGroupManager
| aGroupManager |
aGroupManager := GroupManager new initialize.
aConferenceManager groupManager: aGroupManager.
self assert: aConferenceManager groupManager = aGroupManager!
testConfManInit
self assert: aConferenceManager confContainer size = 0.
self assert: aConferenceManager userManager size = 1.
self
assert: (aConferenceManager userManager getUser: 'root') login = 'root'.
self assert: aConferenceManager groupManager size = 1.
self assert: (aConferenceManager groupManager hasGroup: 'Admin')!
testConfManInitPermissions
self
assert: (aConferenceManager permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((aConferenceManager permissionManager permissionDictionary
at: 'View')
includes: 'Admin';
includes: 'Anonymous').!
testConfManUserManager
| aUserManager |
aUserManager := UserManager new initialize.
aConferenceManager userManager: aUserManager.
self assert: aConferenceManager userManager = aUserManager! !
!ConferenceManagerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aConferenceManager := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aConferenceManager := ConferenceManager new initialize.! !
!ArticleContainerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!ArticleContainerTest methodsFor: 'testing'!
testArticleContArticles
| conts article |
conts := Set new.
article := Article new initialize.
conts add: article.
anArticleContainer articles: conts.
self assert: (anArticleContainer articles includes: article)!
testArticleContAddArticle
| article |
article := Article new initialize.
anArticleContainer addArticle: article.
self assert: (anArticleContainer articles includes: article)!
testArticleContHasArticle
| art |
self deny: anArticleContainer hasArticle.
art := Comment new initialize.
anArticleContainer addArticle: art.
self assert: anArticleContainer hasArticle!
testArticleContDeleteArticle
| article |
article := Article new initialize.
anArticleContainer addArticle: article.
anArticleContainer deleteArticle: article.
self assert: anArticleContainer size=0.!
testArticleContInitPermissions
self assert: (anArticleContainer permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'View')
includes: 'Anonymous').
self assert: (anArticleContainer permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self assert: (anArticleContainer permissionManager permissionDictionary
includesKey: 'Review').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'Review')
includes: 'Acquire').
self assert: (anArticleContainer permissionManager permissionDictionary
includesKey: 'Add Article').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'Add Article')
includes: 'Admin').
self
assert: ((anArticleContainer permissionManager permissionDictionary at: 'Add Article')
includes: 'Logged User')!
testArticleContInit
self assert: anArticleContainer size=0! !
!ArticleContainerTest methodsFor: 'initialize-release'!
setUp
anArticleContainer := ArticleContainer new initialize.!
initialize
anArticleContainer := nil.
^self! !
!CommentTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!CommentTest methodsFor: 'testing'!
testCommentRating
aComment rating: 1.
self assert: aComment rating = 1!
testCommentInitGroups
self assert: (aComment membershipManager isGroup: 'Owner')!
testCommentInit
self assert: (aComment membershipManager isGroup: 'Logged User') .
self assert: (aComment membershipManager isGroup: 'Anonymous') .
self assert: (aComment membershipManager isGroup: 'Owner') .
self assert: (aComment membershipManager isGroup: 'Admin')!
testCommentUser
aComment user: 'login'.
self assert: aComment user = 'login'.
self
assert: (aComment membershipManager isMemberOfGroup: 'Owner'
userLogin: 'login')!
testCommentValidate
self should: [aComment validate] raise: TestResult error.
aComment text: 'test'.
self shouldnt: [aComment validate] raise: TestResult error.!
testCommentInitPermissions
self assert: (aComment permissionManager permissionDictionary
includesKey: 'View').
self
assert: ((aComment permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((aComment permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self assert: (aComment permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((aComment permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((aComment permissionManager permissionDictionary at: 'Modify')
includes: 'Owner')!
testCommentText
aComment text: 'Test of a string'.
self assert: aComment text = 'Test of a string'! !
!CommentTest methodsFor: 'initialize-release'!
setUp
aComment := Comment new initialize.!
initialize
aComment := nil.
^self! !
!MembershipManagerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!MembershipManagerTest methodsFor: 'testing'!
testInitialize
self assert: (memberMgr groupDictionary ~= nil).
self assert: (memberMgr groupDictionary includesKey: 'Logged User').
self assert: (memberMgr groupDictionary includesKey: 'Anonymous').!
testIsMemberOfGroup
memberMgr setGroupMembers: #('chien' 'chat') groupName: 'mammiferes'.
self assert: ((memberMgr isMemberOfGroup: 'mammiferes' userLogin: 'chien') ).
self assert: ((memberMgr isMemberOfGroup: 'mammiferes' userLogin: 'chat') ).
self deny: ((memberMgr isMemberOfGroup: 'mammiferes' userLogin: 'poisson') ).!
testSetGroupMembers
memberMgr setGroupMembers: #('chien' 'chat') groupName: 'mammiferes'.
self assert: ((memberMgr groupDictionary includesKey: 'mammiferes') ).
self assert: ((memberMgr groupDictionary at: 'mammiferes') = #('chien' 'chat')).
memberMgr setGroupMembers: #('chien' 'chat' 'vache') groupName: 'mammiferes'.
self assert: ((memberMgr groupDictionary at: 'mammiferes') = #('chien' 'chat' 'vache')).!
testLoggedMemberOfGroup
self assert: ((memberMgr isMemberOfGroup: 'Logged User' userLogin: 'anUserLogin') ).
self deny: ((memberMgr isMemberOfGroup: 'Logged User' userLogin: nil) ).!
testIsGroup
memberMgr setGroupMembers: #('chien' 'chat') groupName: 'mammiferes'.
self assert: ((memberMgr isGroup: 'mammiferes') ).
self deny: ((memberMgr isGroup: 'invertebrés') ).!
testGetGroups
memberMgr addGroupMembers: 'name'.
self assert: (memberMgr getGroups includes: 'name')!
testAnonymousMemberOfGroup
self deny: ((memberMgr isMemberOfGroup: 'Anonymous' userLogin: 'anUserLogin') ).
self assert: ((memberMgr isMemberOfGroup: 'Anonymous' userLogin: nil) ).!
testGetVisibleGroups
memberMgr addGroupMembers: 'name'.
self assert: (memberMgr getVisibleGroups includes: 'name')!
testAddGroupMembers
memberMgr addGroupMembers: 'Drinkers'.
self assert: (memberMgr groupDictionary includesKey: 'Drinkers').
self assert: ((memberMgr groupDictionary at: 'Drinkers') = #())!
testAddGroupMembersToGroup
| anUser |
anUser := User new initialize.
memberMgr addMemberToGroup: anUser group: 'grp'.
self assert: (memberMgr groupDictionary includesKey: 'grp').
self assert: ((memberMgr groupDictionary at: 'grp') = anUser)! !
!MembershipManagerTest methodsFor: 'initialize-release'!
setUp
memberMgr := MembershipManager new initialize.!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self! !
!GroupManagerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!GroupManagerTest methodsFor: 'testing'!
testGroupManagerInit
self assert: (aGroupManager groupDictionary keys size = 0).!
testGetGroups
aGroupManager addGroup: 'name'.
self assert: (aGroupManager getGroups first ) name = 'name'.!
testHasGroup
aGroupManager addGroup: 'group1'.
self assert: ((aGroupManager hasGroup: 'group1') ).
self deny: ((aGroupManager hasGroup: 'thing') ).!
testAddGroup
aGroupManager addGroup: 'group1'.
self assert: (aGroupManager groupDictionary keys size = 1).
self assert: (((aGroupManager groupDictionary) at: 'group1') ~= nil).
self assert: ((((aGroupManager groupDictionary) at: 'group1') name) = 'group1')!
testGroupManagerInitPermissions
self assert: (aGroupManager permissionManager permissionDictionary includesKey: 'View').
self assert: (aGroupManager permissionManager permissionDictionary includesKey: 'Modify').
self assert: (aGroupManager permissionManager permissionDictionary includesKey: 'Add Group').
self assert: ((aGroupManager permissionManager permissionDictionary at: 'Add Group') includes: 'Admin').
self assert: ((aGroupManager permissionManager permissionDictionary at: 'View') includes:'Admin').
self assert: ((aGroupManager permissionManager permissionDictionary at: 'Modify') includes:'Admin').! !
!GroupManagerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
aGroupManager := GroupManager new initialize.! !
!SecureObjectTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!SecureObjectTest methodsFor: 'testing'!
testInitPermissions
self assert: (anObject permissionManager permissionDictionary
includesKey: 'View').
self assert: (anObject permissionManager permissionDictionary
includesKey: 'Delete').
self assert: (anObject permissionManager permissionDictionary
includesKey: 'View Security Manager').
self
assert: ((anObject permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((anObject permissionManager permissionDictionary at: 'Delete')
includes: 'Admin').
self
assert: ((anObject permissionManager permissionDictionary
at: 'View Security Manager') includes: 'Admin')!
testInitGroups
self assert: (anObject membershipManager isMemberOfGroup: 'Admin' userLogin: 'root').! !
!SecureObjectTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
"setting up a new UserManager at the beginning the each test"
anObject := SecureObject new initialize.! !
!UserTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!UserTest methodsFor: 'testing'!
testUserSurname
anUser surname: 'surname'.
self assert: anUser surname = 'surname'!
testUserEmail
anUser email: 'brol@machin.com'.
self assert: anUser email = 'brol@machin.com'!
testUserLogin
anUser login: 'login'.
self assert: anUser login = 'login'!
testUserPassword
anUser password: 'pass'.
self assert: anUser password = 'pass'!
testUserInitPermissions
self
assert: (anUser permissionManager permissionDictionary includesKey: 'View').
self assert: ((anUser permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self assert: ((anUser permissionManager permissionDictionary at: 'View')
includes: 'Owner').
self assert: (anUser permissionManager permissionDictionary
includesKey: 'Modify').
self
assert: ((anUser permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((anUser permissionManager permissionDictionary at: 'Modify')
includes: 'Owner')!
testUserValidate
self should: [anUser validate] raise: TestResult error.
anUser name: 'name'.
self should: [anUser validate] raise: TestResult error.
anUser surname: 'surname'.
self should: [anUser validate] raise: TestResult error.
anUser login: 'login'.
self should: [anUser validate] raise: TestResult error.
anUser password: 'psswd'.
self should: [anUser validate] raise: TestResult error.
anUser email: 'mail'.
self shouldnt: [anUser validate] raise: TestResult error!
testUserName
anUser name: 'name'.
self assert: anUser name = 'name'!
testUserAddSkill!
testUserInit
self assert: anUser name isNil.
self assert: anUser email isNil.
self assert: anUser login isNil.
self assert: anUser password isNil.
self assert: anUser surname isNil!
testUserSkills! !
!UserTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
"initialize the test"
anUser := User new.! !
!LocationsContainerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!LocationsContainerTest methodsFor: 'testing'!
testLocationContainerAddLocation
| solbosh |
solbosh := Location new initialize place: 'solbosh'.
aLocationsContainer addLocation: solbosh.
aLocationsContainer deleteLocation: solbosh.
self assert: (aLocationsContainer getLocations isEmpty)!
testLocationContainerInitPermissions
self
assert: (aLocationsContainer permissionManager permissionDictionary includesKey: 'View').
self assert: (aLocationsContainer permissionManager permissionDictionary includesKey: 'Delete').
self assert: (aLocationsContainer permissionManager permissionDictionary includesKey: 'Modify').
self assert: (aLocationsContainer permissionManager permissionDictionary includesKey: 'Add Location').
self assert: ((aLocationsContainer permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self assert: ((aLocationsContainer permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self assert: ((aLocationsContainer permissionManager permissionDictionary at: 'View')
includes: 'Anonymous').
self
assert: ((aLocationsContainer permissionManager permissionDictionary at: 'Delete')
includes: 'Admin').
self
assert: ((aLocationsContainer permissionManager permissionDictionary at: 'Delete')
includes: 'Owner').
self
assert: ((aLocationsContainer permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((aLocationsContainer permissionManager permissionDictionary at: 'Add Location')
includes: 'Admin').
self
assert: ((aLocationsContainer permissionManager permissionDictionary at: 'Add Location')
includes: 'Logged User')!
testLocationContainerGetLocationsObjects
| solbosh |
solbosh := Location new initialize place: 'solbosh'.
aLocationsContainer addLocation: solbosh.
self assert: (aLocationsContainer getLocationsObjects includes: solbosh)!
testLocationContainerInit
self assert: aLocationsContainer size = 0!
testLocationContainerGetLocations
| solbosh |
solbosh := Location new initialize place: 'solbosh'.
aLocationsContainer addLocation: solbosh.
self assert: (aLocationsContainer getLocations includes: 'solbosh')!
testLocationContainerHasLocation
| solbosh |
solbosh := Location new initialize place: 'solbosh'.
aLocationsContainer addLocation: solbosh.
self assert: aLocationsContainer hasLocation! !
!LocationsContainerTest methodsFor: 'initialize-release'!
setUp
aLocationsContainer := LocationsContainer new initialize.!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self! !
!UserManagerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!UserManagerTest methodsFor: 'testing'!
testAddUserName
"Test adding a new user in the list of users"
anUserManager
addUser: 'user1'
surname: 'surname'
login: 'login'
password: 'psswd'
email: 'mail'.
self assert: (anUserManager usersDictionary keys size = 1).
self assert: (((anUserManager usersDictionary) at: 'login') ~= nil).
self assert: ((((anUserManager usersDictionary) at: 'login') surname) = 'surname').
self assert: ((((anUserManager usersDictionary) at: 'login') password) = 'psswd').
self assert: ((((anUserManager usersDictionary) at: 'login') email) = 'mail').!
testUserSharedSkills
| user |
user := Set new.
user add: 'login'; add:'skill'.
anUserManager sharedSkills: user.
self assert: (anUserManager sharedSkills = user).!
testUserHasLogin
| user1|
user1 := User new initialize ;name: 'name1'; surname: 'surname1'; login: 'login1'.
anUserManager addUser: user1.
self assert: ((anUserManager hasLogin: 'login1') ).
self deny: ((anUserManager hasLogin: 'brol') ).!
testGetUserObjects
| user1 user2 |
user1 := User new initialize name: 'name1'; surname: 'surname1'; login: 'login1'.
user2 := User new initialize name: 'name2'; surname: 'surname2'; login: 'login2'.
anUserManager addUser: user1; addUser: user2.
self assert: (anUserManager getUserObjects includes: user1).
self assert: (anUserManager getUserObjects includes: user2).!
testGetUserLogins
"test the list of user login"
| aSet |
anUserManager
addUser: 'user1'
surname: 'surname'
login: 'login'
password: 'psswd'
email: 'mail'.
anUserManager
addUser: 'user2'
surname: 'surname2'
login: 'login2'
password: 'psswd2'
email: 'mail2'.
aSet := Set new.
aSet add: 'login'; add: 'login2'.
self assert: (anUserManager getUserLogins includes: 'login').
self assert: (anUserManager getUserLogins includes: 'login2').!
testUserPersistance
"Test the persistance of an User instance in a Dictionary"
| anUser |
anUserManager
addUser: 'user1'
surname: 'surname'
login: 'login'
password: 'psswd'
email: 'mail'.
anUser := anUserManager getUser: 'login'.
self assert: anUser name = 'user1'.
anUser name: 'user2'.
anUser := anUserManager getUser: 'login'.
self assert: anUser name = 'user2'!
testUserModify
| anUser |
anUserManager addUser: 'user1'
surname: 'surname1'
login: 'login'
password: 'psswd1'
email: 'mail1'.
anUser := anUserManager getUser: 'login'.
anUser name: 'user2'.
anUser surname: 'surname2'.
anUser password: 'psswd2'.
anUser email: 'mail2'.
anUserManager modifyUser: anUser.
self assert: ((anUserManager getUser: 'login') name = 'user2').
self assert: ((anUserManager getUser: 'login') surname = 'surname2').
self assert: ((anUserManager getUser: 'login') password = 'psswd2').
self assert: ((anUserManager getUser: 'login') email = 'mail2').!
testAddUser
"Test adding a new user in the list of users"
| user |
user := User new initialize.
user login: 'login'.
anUserManager addUser: user.
self assert: (anUserManager usersDictionary keys size = 1).
self assert: (((anUserManager usersDictionary) at: 'login') ~= nil).
self assert: ((((anUserManager usersDictionary) at: 'login') surname) isNil).
self assert: ((((anUserManager usersDictionary) at: 'login') password) isNil).
self assert: ((((anUserManager usersDictionary) at: 'login') email) isNil).!
testUserAddSharedSkill
| skill |
skill := KeywordsContainer new initialize.
skill addKeyword: 'skill'.
anUserManager addSharedSkill: skill.
self assert: (anUserManager sharedSkills includes: skill).!
testGetUser
"get a user by its login id"
| anUser |
anUserManager
addUser: 'user1'
surname: 'surname'
login: 'login'
password: 'psswd'
email: 'mail'.
anUser := anUserManager getUser: 'login'.
self assert: (anUser name = 'user1').!
testUserManagerInitPermissions
self
assert: (anUserManager permissionManager permissionDictionary
includesKey: 'View') .
self
assert: ((anUserManager permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: (anUserManager permissionManager permissionDictionary
includesKey: 'Modify') .
self
assert: ((anUserManager permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: (anUserManager permissionManager permissionDictionary
includesKey: 'Add User') .
self
assert: ((anUserManager permissionManager permissionDictionary at: 'Add User')
includes: 'Admin').
self
assert: ((anUserManager permissionManager permissionDictionary at: 'Add User')
includes: 'Anonymous')!
testUserManagerInit
"Test the initialization of the class"
self assert: (anUserManager usersDictionary keys size = 0).
self assert: (anUserManager sharedSkills size = 0 ).!
testUserDelete
"Test adding a new user in the list of users"
| user |
user := User new initialize.
user login: 'login'.
anUserManager addUser: user.
anUserManager deleteUser: user.
self assert: anUserManager usersDictionary keys isEmpty! !
!UserManagerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
"setting up a new UserManager at the beginning the each test"
anUserManager := UserManager new initialize! !
!KeywordsContainerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!KeywordsContainerTest methodsFor: 'testing'!
testAddKeyword
self assert: (keywordsContainer isEmpty).
keywordsContainer addKeyword: 'key1'.
self assert: (keywordsContainer size = 1).
keywordsContainer addKeyword: 'key1'.
self assert: (keywordsContainer size = 1).
keywordsContainer addKeyword: ''.
self assert: (keywordsContainer size = 1).! !
!KeywordsContainerTest methodsFor: 'initialize-release'!
setUp
keywordsContainer := KeywordsContainer new initialize.
keywordsContainer sortBlock: [:x :y | x <= y].!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self! !
!PermissionManagerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!PermissionManagerTest methodsFor: 'testing'!
testAddMemberToPermission
memberMgr setGroupMembers: (Set with:'dog' with:'cat') groupName: 'mammals'.
memberMgr setGroupMembers: (Set with:'pelican') groupName: 'birds'.
permMgr setPermission: 'canEatFish' members: (Set with:'mammals').
permMgr addMemberToPermission: 'canEatFish' member: 'birds'.
self assert: ((permMgr permissionDictionary at: 'canEatFish')
includes:'mammals'; includes:'birds')!
testHasPermission
memberMgr setGroupMembers: #('chien' 'chat') groupName: 'mammiferes'.
permMgr setPermission: 'canEatFish' members: #('mammiferes').
self assert: (permMgr hasPermission: 'canEatFish' memberName: 'chien') .
self assert: (permMgr hasPermission: 'canEatFish' memberName: 'chat') .
self deny: (permMgr hasPermission: 'canEatFish' memberName: 'poisson') .
permMgr setPermission: 'canEatFish' members: #('chatton').
self assert: (permMgr hasPermission: 'canEatFish' memberName: 'chatton') .
self should: [permMgr hasPermission: 'canEatMeat' memberName: 'dino']
raise: TestResult error!
testAddPermission
permMgr addPermission: 'Can Eat Meat'.
self assert: (permMgr permissionDictionary includesKey: 'Can Eat Meat').
self assert: ((permMgr permissionDictionary at: 'Can Eat Meat') = #())!
testInitialize
self assert: (permMgr permissionDictionary ~= nil).
self assert: (permMgr permissionDictionary isEmpty )!
testSetPermission
memberMgr setGroupMembers: #('chien' 'chat') groupName: 'mammiferes'.
permMgr setPermission: 'canEatFish' members: #('mammiferes').
self assert: (permMgr permissionDictionary includesKey: 'canEatFish').
self assert: ((permMgr permissionDictionary at: 'canEatFish') = #('mammiferes')).
permMgr setPermission: 'canEatFish' members: #('mammiferes' 'baleine').
self assert: ((permMgr permissionDictionary at: 'canEatFish') = #('mammiferes' 'baleine')).! !
!PermissionManagerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
permMgr := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
memberMgr := MembershipManager new initialize.
permMgr := PermissionManager new initialize membershipManager: memberMgr.! !
!RoomsContainerTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!RoomsContainerTest methodsFor: 'testing'!
testRoomsContainerDeleteRoom
| solbosh |
solbosh := Room new initialize.
aRoomsContainer addRoom: solbosh.
aRoomsContainer deleteRoom: solbosh.
self assert: aRoomsContainer size = 0.!
testRoomsContainerInit
self assert: aRoomsContainer size = 0!
testRoomsContainerInitPermissions
self
assert: (aRoomsContainer permissionManager permissionDictionary includesKey: 'View').
self assert: (aRoomsContainer permissionManager permissionDictionary
includesKey: 'Modify').
self assert: (aRoomsContainer permissionManager permissionDictionary
includesKey: 'Add Room').
self assert: ((aRoomsContainer permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self assert: ((aRoomsContainer permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self
assert: ((aRoomsContainer permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self assert: ((aRoomsContainer permissionManager permissionDictionary at: 'Add Room')
includes: 'Admin').
self assert: ((aRoomsContainer permissionManager permissionDictionary at: 'Add Room')
includes: 'Logged User').!
testRoomsContainerAddRoom
| solbosh |
solbosh := Room new initialize name: 'solbosh'.
aRoomsContainer addRoom: solbosh.
self assert: (aRoomsContainer rooms includes: solbosh)!
testRoomsContainerGetRoomsName
| solbosh |
solbosh := Room new initialize name: 'solbosh'.
aRoomsContainer addRoom: solbosh.
self assert: ((aRoomsContainer getRoomWithName: 'solbosh') = solbosh).
self assert: ((aRoomsContainer getRoomWithName: 'thing') isNil)! !
!RoomsContainerTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aRoomsContainer := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aRoomsContainer := RoomsContainer new initialize.! !
!LocationTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!LocationTest methodsFor: 'testing'!
testLocationModify
| aLoc |
aLocation place: 'place'.
aLocation address: 'address'.
aLoc := Location new initialize.
aLoc place: 'place2'.
aLoc address: 'address2'.
aLocation modify: aLoc.
self assert: aLocation place = 'place2'.
self assert: aLocation address = 'address2'!
testLocationAddress
aLocation address: '10 Bakerstreet, London'.
self assert: aLocation address = '10 Bakerstreet, London'!
testLocationPlace
aLocation place: '10 Bakerstreet, London'.
self assert: aLocation place = '10 Bakerstreet, London'!
testLocationValidate
self should: [aLocation validate] raise: TestResult error.
aLocation place: 'place'.
self should: [aLocation validate] raise: TestResult error.
aLocation address: 'address'.
self shouldnt: [aLocation validate] raise: TestResult error!
testLocationInit
self assert: aLocation rooms size = 0!
testLocationInitPermissions
self
assert: (aLocation permissionManager permissionDictionary includesKey: 'View').
self assert: (aLocation permissionManager permissionDictionary includesKey: 'Delete').
self assert: (aLocation permissionManager permissionDictionary includesKey: 'Modify').
self assert: ((aLocation permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self assert: ((aLocation permissionManager permissionDictionary at: 'View')
includes: 'Logged User').
self assert: ((aLocation permissionManager permissionDictionary at: 'View')
includes: 'Anonymous').
self
assert: ((aLocation permissionManager permissionDictionary at: 'Delete')
includes: 'Admin').
self
assert: ((aLocation permissionManager permissionDictionary at: 'Delete')
includes: 'Owner').
self
assert: ((aLocation permissionManager permissionDictionary at: 'Modify')
includes: 'Admin').
self
assert: ((aLocation permissionManager permissionDictionary at: 'Modify')
includes: 'Owner')! !
!LocationTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Replace this comment with the appropriate initialization code *** "
^self!
setUp
aLocation := Location new initialize.! !
!GroupTest class methodsFor: 'instance creation'!
new
"Answer a newly created and initialized instance."
^super new initialize! !
!GroupTest methodsFor: 'testing'!
testGroupName
aGroup name: 'Groupe1'.
self assert: (aGroup name = 'Groupe1').!
testGroupInitPermissions
self
assert: (aGroup permissionManager permissionDictionary includesKey: 'View').
self assert: (aGroup permissionManager permissionDictionary
includesKey: 'Modify').
self assert: ((aGroup permissionManager permissionDictionary at: 'View')
includes: 'Admin').
self
assert: ((aGroup permissionManager permissionDictionary at: 'Modify')
includes: 'Admin')!
testGroupInit
self assert: (aGroup name isNil).!
testGroupValidate
self should: [aGroup validate] raise: TestResult error.
aGroup name: 'Groupe1'.
self shouldnt: [aGroup validate] raise: TestResult error.! !
!GroupTest methodsFor: 'initialize-release'!
initialize
"Initialize a newly created instance. This method must answer the receiver."
" *** Edit the following to properly initialize instance variables ***"
aGroup := nil.
" *** And replace this comment with additional initialization code *** "
^self!
setUp
aGroup := Group new initialize.! !
Generated by