[Pharo] Personal fitness tracker web app.
1
"
2
A MFTEquipmentTest is a test class for testing the behavior of MFTEquipment
3
"
4
Class {
5
#name : 'MFTEquipmentTest',
6
#superclass : 'TestCase',
7
#category : 'MyFitnessTracker-Core-Tests-Base',
8
#package : 'MyFitnessTracker-Core-Tests',
9
#tag : 'Base'
10
}
11
12
{ #category : 'tests' }
13
MFTEquipmentTest >> equipmentFactorySelectors [
14
15
^ #( barbell cable dumbbell ezBar legExtensionMachine
16
pecDeck seatedLegCurlMachine )
17
]
18
19
{ #category : 'tests' }
20
MFTEquipmentTest >> testEnglishNameCanBeAssigned [
21
22
| equipment |
23
equipment := MFTEquipment new englishName: 'barbell'.
24
25
self assert: equipment englishName equals: 'barbell'.
26
self assert: equipment canonicalName equals: 'barbell'
27
]
28
29
{ #category : 'tests' }
30
MFTEquipmentTest >> testEquipmentIsNotEqualToObjectOfAnotherClass [
31
32
self deny: MFTEquipment barbell equals: 'barbell'
33
]
34
35
{ #category : 'tests' }
36
MFTEquipmentTest >> testEquipmentWithDifferentEnglishNamesAreNotEqual [
37
38
| first second |
39
first := MFTEquipment new englishName: 'barbell'.
40
second := MFTEquipment new englishName: 'dumbbell'.
41
42
self deny: first equals: second
43
]
44
45
{ #category : 'tests' }
46
MFTEquipmentTest >> testEquipmentWithSameEnglishNameAreEqual [
47
48
| first second |
49
first := MFTEquipment new englishName: 'barbell'.
50
second := MFTEquipment new englishName: 'barbell'.
51
52
self deny: first == second.
53
self assert: first equals: second.
54
self assert: first hash equals: second hash
55
]
56
57
{ #category : 'tests' }
58
MFTEquipmentTest >> testEzBarFactoryKeepsExpectedCapitalization [
59
60
| equipment |
61
equipment := MFTEquipment ezBar.
62
63
self assert: equipment englishName equals: 'EZ bar'.
64
self assert: equipment canonicalName equals: 'EZ bar'
65
]
66
67
{ #category : 'tests' }
68
MFTEquipmentTest >> testFactoryCreatesFreshButEqualEquipment [
69
70
| first second |
71
first := MFTEquipment barbell.
72
second := MFTEquipment barbell.
73
74
self deny: first == second.
75
self assert: first equals: second.
76
self assert: first hash equals: second hash
77
]
78
79
{ #category : 'tests' }
80
MFTEquipmentTest >> testFactoryEquipmentEnglishNamesAreUnique [
81
82
| equipment duplicates duplicateNames |
83
equipment := self equipmentFactorySelectors collect: [ :selector |
84
MFTEquipment perform: selector ].
85
duplicates := equipment groupedBy: #englishName.
86
duplicateNames := duplicates associations select: [ :association |
87
association value size > 1 ].
88
89
self
90
assert: duplicateNames isEmpty
91
description:
92
'Duplicate equipment English names: ' , duplicateNames printString
93
]
94
95
{ #category : 'tests' }
96
MFTEquipmentTest >> testFactoryEquipmentHaveEnglishName [
97
98
self equipmentFactorySelectors do: [ :selector |
99
| equipment |
100
equipment := MFTEquipment perform: selector.
101
self
102
deny: equipment englishName isEmptyOrNil
103
description: selector asString , ' should set an English name' ]
104
]
105
106
{ #category : 'tests' }
107
MFTEquipmentTest >> testKnownFactoryNames [
108
109
self assert: MFTEquipment barbell englishName equals: 'barbell'.
110
self assert: MFTEquipment dumbbell englishName equals: 'dumbbell'.
111
self assert: MFTEquipment cable englishName equals: 'cable'.
112
self assert: MFTEquipment pecDeck englishName equals: 'pec deck'.
113
self
114
assert: MFTEquipment legExtensionMachine englishName
115
equals: 'leg extension machine'.
116
self
117
assert: MFTEquipment seatedLegCurlMachine englishName
118
equals: 'seated leg curl machine'
119
]
120
121
{ #category : 'tests' }
122
MFTEquipmentTest >> testNewEquipmentHasNoEnglishName [
123
124
| equipment |
125
equipment := MFTEquipment new.
126
127
self assert: equipment englishName isNil.
128
self assert: equipment canonicalName isNil
129
]
130
131
{ #category : 'tests' }
132
MFTEquipmentTest >> testNewWithEnglishNameUsesCallingSelector [
133
134
| equipment |
135
equipment := MFTEquipment seatedLegCurlMachine.
136
137
self assert: equipment englishName equals: 'seated leg curl machine'.
138
self
139
assert: equipment canonicalName
140
equals: 'seated leg curl machine'
141
]
142