test/MCSnapshotTest.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 08 Jul 2020 11:07:15 +0100
branchjv
changeset 1118 1cd9e0a3805b
parent 816 ad7b435d0718
child 1121 c5661215109c
permissions -rw-r--r--
Add mock classes (for tests)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello/test' }"
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTestCase subclass:#MCSnapshotTest
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'snapshot'
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
816
ad7b435d0718 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
     7
	category:'SCM-Monticello-Tests'
11
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
1118
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    11
!MCSnapshotTest methodsFor:'*MonticelloMocks'!
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    12
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    13
mockClassExtension
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    14
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    15
    "I change the protocol of this method to resolve the failing test: MCChangeNotificationTest >> testExtMethodModified. This test basically test that when we modified an extension method, the extended package is marked as 'modified'. The problem is that Monticello treat differently a classic method from an extension method, and this only by checking if the protocol name start with a star. Therefore, if the protocol does not match the extending package name, the extending package name will never be notified, and the test will fail. " 
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    16
! !
1cd9e0a3805b Add mock classes (for tests)
Jan Vrany <jan.vrany@labware.com>
parents: 816
diff changeset
    17
11
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!MCSnapshotTest methodsFor:'running'!
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
setUp
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	snapshot _  self mockSnapshot.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
! !
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!MCSnapshotTest methodsFor:'tests'!
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
testCreation
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	|d|
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	d _  self mockSnapshot definitions.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	self assert: (d anySatisfy: [:ea | ea isClassDefinition and: [ea className = #MCMockClassA]]).
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	self assert: (d anySatisfy: [:ea | ea isMethodDefinition and: [ea selector = #mockClassExtension]]).
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	self assert: (d allSatisfy: [:ea | ea isClassDefinition not or: [ea category endsWith: 'Mocks']]).
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
testInstanceReuse
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	| x m n y |
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	x _ (MCPackage new name: self mockCategoryName) snapshot.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	Smalltalk garbageCollect.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	n _ MCDefinition allSubInstances size.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	y _ (MCPackage new name: self mockCategoryName) snapshot.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	Smalltalk garbageCollect.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	m _ MCDefinition allSubInstances size.
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	self assert: m = n
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!MCSnapshotTest class methodsFor:'documentation'!
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
version
816
ad7b435d0718 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    49
    ^ '$Header: /cvs/stx/stx/goodies/monticello/test/MCSnapshotTest.st,v 1.2 2013-05-29 00:01:35 vrany Exp $'
11
30bf0642bdaa initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
! !
816
ad7b435d0718 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 11
diff changeset
    51