MetacelloProjectReferenceSpecTestCase.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:#MetacelloProjectReferenceSpecTestCase
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Metacello-TestsCore-Specs'
!


!MetacelloProjectReferenceSpecTestCase methodsFor:'tests'!

testProjectReferenceMergeSpec
    | projectReferenceA projectReferenceB projectReference project |
    projectReferenceA := self projectReferenceSpec
        name: 'Project';
        projectReference:
                (self projectSpec
                        name: 'Project';
                        className: 'ConfigurationOfProjectA';
                        versionString: #'stable';
                        yourself);
        yourself.
    projectReferenceB := self projectReferenceSpec
        name: 'Project';
        projectReference:
                (self projectSpec
                        name: 'Project';
                        className: 'ConfigurationOfProjectB';
                        versionString: '1.0';
                        yourself);
        yourself.
    projectReference := projectReferenceA mergeSpec: projectReferenceB.
    self assert: projectReference name = 'Project'.
    self assert: projectReference projectName = 'Project'.
    project := projectReference projectReference.
    self assert: project className = 'ConfigurationOfProjectB'.
    self assert: project versionString = '1.0'
!

testProjectReferenceSpec
    | projectReference project |
    projectReference := self projectReferenceSpec
        name: 'Project';
        projectReference:
                (project := self projectSpec
                        name: 'Project';
                        className: 'ConfigurationOfProjectA';
                        versionString: #'stable';
                        yourself);
        yourself.
    self assert: projectReference name = 'Project'.
    self assert: projectReference projectName = 'Project'.
    self assert: projectReference projectReference == project.
    self should: [ projectReference includes: #() ] raise: Error.
    self should: [ projectReference requires: #() ] raise: Error.
    self should: [ projectReference answers: #() ] raise: Error.
    projectReference
        projectDo: [ :prjct | self assert: projectReference == prjct ]
        packageDo: [ :ignored | self assert: false ]
        groupDo: [ :ignored | self assert: false ]
! !

!MetacelloProjectReferenceSpecTestCase class methodsFor:'documentation'!

version_SVN
    ^ '$Id::                                                                                                                        $'
! !