initial checkin
authorfm
Wed, 23 Sep 2009 18:50:12 +0200
changeset 76 f7de72d8b7c7
parent 75 f1792c263b24
child 77 b27f361cc834
initial checkin
SVN__CommitTests.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SVN__CommitTests.st	Wed Sep 23 18:50:12 2009 +0200
@@ -0,0 +1,296 @@
+"{ Package: 'cvut:stx/goodies/libsvn' }"
+
+"{ NameSpace: SVN }"
+
+TestCase subclass:#CommitTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SVN-Tests'
+!
+
+!CommitTests class methodsFor:'documentation'!
+
+version_SVN
+    ^'$Id$'
+! !
+
+!CommitTests methodsFor:'initialization & release'!
+
+setUp
+
+    super setUp.
+    Class withoutUpdatingChangesDo:
+        [self source_stx_goodies_libsvn_CommitTests_st readStream fileIn.
+        self source_SVN__CommitTestsMockA_st readStream fileIn.
+        self source_SVN__CommitTestsMockB_st readStream fileIn]
+
+    "Created: / 19-08-2009 / 14:59:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CommitTests methodsFor:'sources'!
+
+source_SVN__CommitTestsMockA_st
+
+        "
+        SVN::CommitTestsMockA fileOutAsMethodIn: SVN::CommitTests selector: #'source_SVN__CommitTestsMockA_st' category: 'sources'
+
+        SVN::CommitTests new source_SVN__CommitTestsMockA_st
+        "
+
+^'''From Smalltalk/X, Version:5.4.4 on 08-04-2009 at 09:23:01 PM''                  !!
+
+"{ Package: ''stx:goodies/libsvn_CommitTests'' }"
+
+"{ NameSpace: SVN }"
+
+Object subclass:#CommitTestsMockA
+        instanceVariableNames:''''
+        classVariableNames:''''
+        poolDictionaries:''''
+        category:''SVN-Tests-Mocks''
+!!
+
+'
+
+    "Modified: / 19-08-2009 / 13:33:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+source_SVN__CommitTestsMockB_st
+
+        "
+        SVN::CommitTestsMockA fileOutAsMethodIn: SVN::CommitTests selector: #'source_SVN__CommitTestsMockA_st' category: 'sources'
+
+        SVN::CommitTests new source_SVN__CommitTestsMockA_st
+        "
+
+^'"{ Package: ''stx:goodies/libsvn_CommitTests'' }"
+
+"{ NameSpace: SVN }"
+
+Object subclass:#CommitTestsMockB
+        instanceVariableNames:''''
+        classVariableNames:''''
+        poolDictionaries:''''
+        category:''SVN-Tests-Mocks''
+!!
+
+'
+
+    "Created: / 09-04-2009 / 17:41:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 13:33:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+source_stx_goodies_libsvn_CommitTests_st
+
+        "
+        stx_goodies_libsvnCommitTests fileOutAsMethodIn: SVN::CommitTests selector: #'source_stx_goodies_libsvnCommitTests_st' category: 'sources'
+
+        SVN::CommitTests new source_stx_goodies_libsvnCommitTests_st
+        "
+
+^'''From Smalltalk/X, Version:5.4.4 on 08-04-2009 at 09:23:54 PM''                  !!
+
+"{ Package: ''stx:goodies/libsvn_CommitTests'' }"
+
+LibraryDefinition subclass:#stx_goodies_libsvn_CommitTests
+        instanceVariableNames:''''
+        classVariableNames:''''
+        poolDictionaries:''''
+        category:''* Projects & Packages *''
+!!
+
+!!stx_goodies_libsvn_CommitTests class methodsFor:''description''!!
+
+preRequisites
+    ^ #(
+        #''stx:libbasic''    "LibraryDefinition - superclass of stx_goodies_libsvnCommitTests "
+    )
+!! !!
+
+!!stx_goodies_libsvn_CommitTests class methodsFor:''description - contents''!!
+
+classNamesAndAttributes
+    ^ #(
+        "<className> or (<className> attributes...) in load order"
+        #''SVN::CommitTestsMockA''
+        #''SVN::CommitTestsMockB''
+        #''stx_goodies_libsvn_CommitTests''
+    )
+!!
+
+extensionMethodNames
+    ^ #(
+    )
+!! !!
+
+!!stx_goodies_libsvn_CommitTests class methodsFor:''description - project information''!!
+
+applicationIconFileName
+    "Return the name (without suffix) of an icon-file (the app''s icon); will be included in the rc-resource file"
+
+    ^ nil
+    "/ ^ self applicationName
+!!
+
+companyName
+    "Return a companyname which will appear in <lib>.rc"
+
+    ^ ''eXept Software AG''
+!!
+
+description
+    "Return a description string which will appear in vc.def / bc.def"
+
+    ^ ''Smalltalk/X Class library''
+!!
+
+legalCopyright
+    "Return a copyright string which will appear in <lib>.rc"
+
+    ^ ''Copyright Claus Gittinger 1988-2009\nCopyright eXept Software AG 1998-2009''
+!!
+
+productName
+    "Return a product name which will appear in <lib>.rc"
+
+    ^ ''Smalltalk/X''
+!! !!
+
+'
+
+    "Created: / 19-08-2009 / 13:34:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+sources
+
+    ^super sources , 
+    #(
+        (dir  'trunk')
+        (file 'trunk/SVN__CommitTestsMockA.st'          source_SVN__CommitTestsMockA_st)
+        (file 'trunk/SVN__CommitTestsMockB.st'          source_SVN__CommitTestsMockB_st)
+        (file 'trunk/stx_goodies_libsvn_CommitTests.st'  source_stx_goodies_libsvn_CommitTests_st)
+
+        (dir  'branches')
+
+        (dir  'tags')
+    )
+
+    "Created: / 08-04-2009 / 21:25:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 13:35:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CommitTests methodsFor:'tests'!
+
+test_01_simple
+
+    "
+        Tests the simpliest commit
+    "
+
+    Class packageQuerySignal answer: self package do:
+        [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1'].
+
+    wc commit:'CommitTests>>test_01 commit'.
+
+    self assert:
+        (wc branch cat: 'SVN__CommitTestsMockA.st')
+            = (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]).
+
+    "Created: / 12-06-2009 / 21:46:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 14:57:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_01_simple_ui
+
+    | w repositoryCode imageCode |
+
+    self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil.
+
+    Class packageQuerySignal answer: self package do:
+        [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1'].
+
+
+    w := CommitWizard new.
+    w task: wc commitTask.
+    [ w open ] fork.
+    Delay waitForSeconds: 4.
+    self assert: w goPrevEnabledHolder value == false.
+    self assert: w goNextEnabledHolder value == true.
+    w goNext.
+    self assert: w goPrevEnabledHolder value == true.
+    self assert: w goNextEnabledHolder value == false.
+    w pane message: 'CommitTests>>test_01 commit'.
+    w doAccept.
+
+    Delay waitForSeconds: 2.
+
+    repositoryCode := (wc branch cat: 'SVN__CommitTestsMockA.st').
+    imageCode := (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]).
+
+    self assert: (repositoryCode = imageCode).
+    "
+        DiffTextView openOn: repositoryCode and: imageCode
+    "
+
+    "Created: / 12-06-2009 / 21:46:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 15:10:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_02_selective_commit
+
+    "
+        Selective class commit test
+    "
+
+    self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil.
+    self assert:(Smalltalk at: #'SVN::CommitTestsMockB' ifAbsent:[nil]) notNil.
+    
+    Class packageQuerySignal answer: self package do:
+        [SVN::CommitTestsMockA compile: 'r1 ^''Revision 1''' classified: 'methods - r1'].
+
+    Class packageQuerySignal answer: self package do:
+        [SVN::CommitTestsMockB compile: 'r1 ^''Revision 1''' classified: 'methods - r1'].
+
+    wc commitTask
+        classes: (Array with: SVN::CommitTestsMockA);
+        message: 'CommitTests>>test_03 commit';
+        do.
+
+    self assert:
+        (wc branch cat: 'SVN__CommitTestsMockA.st')
+            = (String streamContents:[:s| SVN::CommitTestsMockA fileOutOn: s withTimeStamp: false]).
+
+    self assert:
+        (wc branch cat: 'SVN__CommitTestsMockB.st')
+            = self source_SVN__CommitTestsMockB_st.
+
+    "Created: / 12-06-2009 / 21:46:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 14:57:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+test_03_class_remove
+
+    "
+        Tests class remove
+    "
+
+    self assert:(Smalltalk at: #'SVN::CommitTestsMockA' ifAbsent:[nil]) notNil.
+    self assert:(Smalltalk at: #'SVN::CommitTestsMockB' ifAbsent:[nil]) notNil.
+
+    Smalltalk removeClass: SVN::CommitTestsMockB.
+
+    wc commitTask
+        message: 'CommitTests>>test_03 commit';
+        do.
+    self assert: (wc branch list size = (2 + 4)"Make.spec, Make.proto, abbrev.stc, libInit.cc")
+
+    "Created: / 12-06-2009 / 21:52:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 19-08-2009 / 15:09:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!CommitTests class methodsFor:'documentation'!
+
+version
+    ^ '$Header$'
+! !