test/MCSerializationTest.st
author mawalch
Mon, 08 Aug 2016 20:13:59 +0200
changeset 1011 dff0d2ee184c
parent 824 d4cbbb03d3f3
child 1033 66e82afe7a79
child 1121 c5661215109c
permissions -rw-r--r--
#OTHER by mawalch Fix ridiculously propagated typo.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello/test' }"
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTestCase subclass:#MCSerializationTest
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
824
d4cbbb03d3f3 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
     7
	category:'SCM-Monticello-Tests'
26
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCSerializationTest methodsFor:'asserting'!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
assertClass: readerClass providesServices: labels
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	| services suffix |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	suffix _ readerClass extension.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	self assert: (FileList isReaderNamedRegistered: readerClass name).
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	services _ readerClass fileReaderServicesForFile: 'foo' suffix: suffix.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	self assert: ((services collect: [:service | service buttonLabel]) includesAllOf: labels)
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
assertDependenciesMatchWith: writerClass
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	| stream readerClass expected actual |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	readerClass _ writerClass readerClass.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	expected _ self mockVersionWithDependencies.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	stream _ RWBinaryOrTextStream on: String new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	writerClass fileOut: expected on: stream.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	actual _ (readerClass on: stream reset) dependencies.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	self assert: actual = expected dependencies.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
assertExtensionProvidedBy: aClass
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	self shouldnt: [aClass readerClass extension] raise: Exception.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
assertSnapshotsMatchWith: writerClass
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
	| readerClass expected stream actual |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	readerClass _ writerClass readerClass.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
	expected _ self mockSnapshot.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	stream _ RWBinaryOrTextStream on: String new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	(writerClass on: stream) writeSnapshot: expected.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	actual _ readerClass snapshotFromStream: stream reset.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
	self assertSnapshot: actual matches: expected.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
assertVersionInfosMatchWith: writerClass
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	| stream readerClass expected actual |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	readerClass _ writerClass readerClass.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	expected _ self mockVersion.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	stream _ RWBinaryOrTextStream on: String new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
	writerClass fileOut: expected on: stream.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	actual _ readerClass versionInfoFromStream: stream reset.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
	self assert: actual = expected info.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
assertVersionsMatchWith: writerClass
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	| stream readerClass expected actual |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	readerClass _ writerClass readerClass.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	expected _ self mockVersion.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
	stream _ RWBinaryOrTextStream on: String new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
	writerClass fileOut: expected on: stream.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	actual _ readerClass versionFromStream: stream reset.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	self assertVersion: actual matches: expected.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
! !
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!MCSerializationTest methodsFor:'mocks'!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
mockDiffyVersion
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
	| repos workingCopy base next |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	repos _ MCDictionaryRepository new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
	workingCopy _ MCWorkingCopy forPackage: self mockPackage.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	workingCopy repositoryGroup addRepository: repos.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
	MCRepositoryGroup default removeRepository: repos.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
	base _ self mockVersion.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
	repos storeVersion: base.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
	self change: #a toReturn: 'a2'.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	next _ self mockVersionWithAncestor: base.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
	^ next asDiffAgainst: base	
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
! !
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
!MCSerializationTest methodsFor:'testing'!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
testMcdSerialization
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
	| stream expected actual |
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
	expected _ self mockDiffyVersion.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
	stream _ RWBinaryOrTextStream on: String new.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	MCMcdWriter fileOut: expected on: stream.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
	actual _ MCMcdReader versionFromStream: stream reset.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	self assertVersion: actual matches: expected.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
testMczSerialization
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
	self assertVersionsMatchWith: MCMczWriter.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	self assertExtensionProvidedBy: MCMczWriter.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	self assertVersionInfosMatchWith: MCMczWriter.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	self assertDependenciesMatchWith: MCMczWriter.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
testStSerialization
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	self assertSnapshotsMatchWith: MCStWriter.
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!MCSerializationTest class methodsFor:'documentation'!
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
version
824
d4cbbb03d3f3 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   105
    ^ '$Header: /cvs/stx/stx/goodies/monticello/test/MCSerializationTest.st,v 1.2 2013-05-29 00:02:33 vrany Exp $'
26
14f7a1c2169f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
! !
824
d4cbbb03d3f3 Tests moved to category SCM-Monticello-Tests
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 26
diff changeset
   107