SVN__CommitTests.st
author fm
Thu, 08 Oct 2009 13:59:14 +0200
changeset 308 f62a8ceda721
parent 223 17e26ab7b99d
child 386 a189c8f3954d
permissions -rw-r--r--
update #version_SVN with § as keyword expansion character

"{ Package: 'cvut:stx/goodies/libsvn' }"

"{ NameSpace: SVN }"

TestCase subclass:#CommitTests
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'SVN-Tests'
!


!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$'
!

version_CVS
    ^ '$Header$'
!

version_SVN
    ^'§Id: SVN__CommitTests.st 110 2009-08-19 13:21:10Z vranyj1 §'
! !