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