MetacelloProjectSpecTestCase.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 03 Sep 2012 13:10:51 +0000
changeset 3 504152ada1fc
parent 1 9e312de5f694
permissions -rw-r--r--
fixed stc-compilability

"{ Package: 'stx:goodies/metacello' }"

MetacelloSpecTestCase subclass:#MetacelloProjectSpecTestCase
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Metacello-TestsCore-Specs'
!


!MetacelloProjectSpecTestCase methodsFor:'tests'!

testProjectMergeSpec
    | projectA projectB project |
    projectA := self projectSpec
        name: 'Project';
        className: 'ConfigurationOfProject';
        versionString: '1.0';
        loads: #('MyPackage');
        preLoadDoIt: #'preLoadDoIt';
        postLoadDoIt: #'postLoadDoIt';
        yourself.
    projectB := self projectSpec
        name: 'Project';
        className: 'ConfigurationOfProjectB';
        versionString: #'stable';
        operator: #'<';
        loads: #('MyPackage' 'MyTests');
        preLoadDoIt: #'preLoadDoItB';
        postLoadDoIt: #'postLoadDoItB';
        yourself.
    project := projectA mergeSpec: projectB.
    self assert: project name = 'Project'.
    self assert: project className = 'ConfigurationOfProjectB'.
    self assert: project versionString = #'stable'.
    self assert: project operator == #'<'.
    self assert: project loads = #('MyPackage' 'MyTests').
    self assert: project preLoadDoIt value == #'preLoadDoItB'.
    self assert: project postLoadDoIt value == #'postLoadDoItB'
!

testProjectSpec
    | project |
    project := self projectSpec.
    project
        name: 'Project';
        className: 'ConfigurationOfProject';
        versionString: '1.0';
        versionString: #'stable';
        operator: #'<';
        operator: nil;
        loads: 'MyPackage';
        loads: #('MyPackage' 'MyTests');
        preLoadDoIt: #'preLoadDoIt';
        postLoadDoIt: #'postLoadDoIt';
        yourself.
    self assert: project name = 'Project'.
    self assert: project className = 'ConfigurationOfProject'.
    self assert: project versionString = #'stable'.
    self assert: project operator == #'>='.
    self assert: project loads = #('MyPackage' 'MyTests').
    self assert: project preLoadDoIt value == #'preLoadDoIt'.
    self assert: project postLoadDoIt value == #'postLoadDoIt'.
    self should: [ project includes: #() ] raise: Error.
    self should: [ project requires: #() ] raise: Error.
    self should: [ project answers: #() ] raise: Error.
    project
        projectDo: [ :prjct | self assert: project == prjct ]
        packageDo: [ :ignored | self assert: false ]
        groupDo: [ :ignored | self assert: false ].
    self should: [ project preLoadDoIt: '' ] raise: Error.
    self should: [ project postLoadDoIt: '' ] raise: Error
! !

!MetacelloProjectSpecTestCase class methodsFor:'documentation'!

version_SVN
    ^ '$Id::                                                                                                                        $'
! !