test/MCDependencySorterTest.st
author HG Automerge
Thu, 24 Nov 2016 21:56:31 +0000
branchjv
changeset 1015 7b6393ea3d52
parent 804 06ccfdcc56d5
child 1121 c5661215109c
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello/test' }"
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
TestCase subclass:#MCDependencySorterTest
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
804
06ccfdcc56d5 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
     7
	category:'SCM-Monticello-Tests'
18
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCDependencySorterTest methodsFor:'asserting'!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
assertItems: anArray orderAs: depOrder withRequired: missingDeps toLoad: unloadableItems
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	self assertItems: anArray orderAs: depOrder withRequired: missingDeps  toLoad: unloadableItems  extraProvisions: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
assertItems: anArray orderAs: depOrder withRequired: missingDeps toLoad: unloadableItems extraProvisions: provisions
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	| order sorter items missing unloadable |
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	items _ anArray collect: [:ea | self itemWithSpec: ea].
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	sorter _ MCDependencySorter items: items.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	sorter addExternalProvisions: provisions.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	order _ (sorter orderedItems collect: [:ea | ea name]) asArray.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	self assert: order = depOrder.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	missing _ sorter externalRequirements.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	self assert: missing asSet = missingDeps asSet.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	unloadable _ (sorter itemsWithMissingRequirements collect: [:ea | ea name]) asArray.
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	self assert: unloadable asSet = unloadableItems asSet
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!MCDependencySorterTest methodsFor:'building'!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
itemWithSpec: anArray
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	^ MCMockDependentItem new
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
		name: anArray first;
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
		provides: anArray second;
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
		requires: anArray third
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!MCDependencySorterTest methodsFor:'tests'!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
testCascadingUnresolved
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	self assertItems: #(
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
		(a (x) (z))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
		(b () (x))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
		(c () ()))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	orderAs: #(c)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	withRequired: #(z)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	toLoad: #(a b)	
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
testCycle
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	self assertItems: #(
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
		(a (x) (y))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
		(b (y) (x)))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
	orderAs: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	withRequired: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	toLoad: #(a b)	
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
testExtraProvisions
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	self assertItems:
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		#((a (x) (z))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
		(b () (x)))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	orderAs: #(a b)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
	withRequired: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	toLoad: #()	
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
	extraProvisions: #(x z)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
testMultiRequirementOrdering
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	self assertItems: #(
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
		(a (x) (z))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
		(b (y) ())
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
		(c (z) ())
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
		(d () (x y z)))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
		orderAs: #(b c a d)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
		withRequired: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
		toLoad: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
testSimpleOrdering
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	self assertItems: #((a (x) ())
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
								 (c () (y))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
								 (b (y) (x)))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
		orderAs: #(a b c)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
		withRequired: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
		toLoad: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
testSimpleUnresolved
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	self assertItems: #(
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
		(a () (z)))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	orderAs: #()
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	withRequired: #(z)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	toLoad: #(a)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
		
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
testUnusedAlternateProvider
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	self assertItems: #(
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
		(a (x) (z))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
		(b () (x))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		(c (x) ()))
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
	orderAs: #(c b)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	withRequired: #(z)
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
	toLoad: #(a)	
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
! !
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
!MCDependencySorterTest class methodsFor:'documentation'!
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
version
804
06ccfdcc56d5 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   112
    ^ '$Header: /cvs/stx/stx/goodies/monticello/test/MCDependencySorterTest.st,v 1.2 2013-05-29 00:00:09 vrany Exp $'
18
2467c4cf0c63 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
! !
804
06ccfdcc56d5 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   114