[Pharo] Personal fitness tracker web app.
1
"
2
A MFTExerciseTest is a test class for testing the behavior of MFTExercise
3
"
4
Class {
5
#name : 'MFTExerciseTest',
6
#superclass : 'TestCase',
7
#category : 'MyFitnessTracker-Core-Tests-Base',
8
#package : 'MyFitnessTracker-Core-Tests',
9
#tag : 'Base'
10
}
11
12
{ #category : 'tests' }
13
MFTExerciseTest >> testActivatingOneMuscleGroupMakesItMain [
14
15
| exercise mainGroups |
16
exercise := MFTExercise new.
17
exercise activates: MFTMuscleGroup chest.
18
19
mainGroups := exercise mainActivatedMuscleGroups.
20
21
self assert: mainGroups size equals: 1.
22
self assert: (mainGroups includes: MFTMuscleGroup chest)
23
]
24
25
{ #category : 'tests' }
26
MFTExerciseTest >> testBarbellBenchPressFactoryIsComplete [
27
28
| exercise mainGroups |
29
exercise := MFTExercise barbellBenchPress.
30
mainGroups := exercise mainActivatedMuscleGroups.
31
32
self assert: exercise englishName equals: 'barbell bench press'.
33
self assert: exercise equipment equals: MFTEquipment barbell.
34
self assert: (mainGroups includes: MFTMuscleGroup chest)
35
]
36
37
{ #category : 'tests' }
38
MFTExerciseTest >> testCloseGripPalmsUpPulldownFactoryIsComplete [
39
40
| exercise mainGroups |
41
exercise := MFTExercise closeGripPalmsUpPulldown.
42
mainGroups := exercise mainActivatedMuscleGroups.
43
44
self
45
assert: exercise englishName
46
equals: 'close-grip palms-up pulldown'.
47
self assert: exercise equipment equals: MFTEquipment cable.
48
self assert: (mainGroups includes: MFTMuscleGroup back)
49
]
50
51
{ #category : 'tests' }
52
MFTExerciseTest >> testEquipmentCanBeAssigned [
53
54
| exercise |
55
exercise := MFTExercise new.
56
exercise equipment: MFTEquipment dumbbell.
57
58
self assert: exercise equipment equals: MFTEquipment dumbbell
59
]
60
61
{ #category : 'tests' }
62
MFTExerciseTest >> testExerciseWithNoMuscleGroupsHasNoMainActivatedMuscleGroups [
63
64
| exercise |
65
exercise := MFTExercise new.
66
self assert: exercise mainActivatedMuscleGroups equals: nil
67
]
68
69
{ #category : 'tests' }
70
MFTExerciseTest >> testExercisesWithDifferentEnglishNamesAreNotEqual [
71
72
| first second |
73
first := MFTExercise new
74
englishName: 'barbell bench press';
75
equipment: MFTEquipment barbell.
76
second := MFTExercise new
77
englishName: 'barbell squat';
78
equipment: MFTEquipment barbell.
79
80
self deny: first equals: second
81
]
82
83
{ #category : 'tests' }
84
MFTExerciseTest >> testExercisesWithDifferentEquipmentAreNotEqual [
85
86
| first second |
87
first := MFTExercise new
88
englishName: 'bench press';
89
equipment: MFTEquipment barbell.
90
second := MFTExercise new
91
englishName: 'bench press';
92
equipment: MFTEquipment dumbbell.
93
94
self deny: first equals: second
95
]
96
97
{ #category : 'tests' }
98
MFTExerciseTest >> testExercisesWithSameEnglishNameAndEquipmentAreEqual [
99
100
| first second |
101
first := MFTExercise new
102
englishName: 'barbell bench press';
103
equipment: MFTEquipment barbell.
104
second := MFTExercise new
105
englishName: 'barbell bench press';
106
equipment: MFTEquipment barbell.
107
108
self assert: first equals: second.
109
self assert: first hash equals: second hash
110
]
111
112
{ #category : 'tests' }
113
MFTExerciseTest >> testMainActivatedMuscleGroupsReturnsAllTiedHighestActivations [
114
115
| exercise mainGroups |
116
exercise := MFTExercise new.
117
exercise
118
activates: MFTMuscleGroup chest percent: 100;
119
activates: MFTMuscleGroup arm percent: 100;
120
activates: MFTMuscleGroup shoulder percent: 50.
121
122
mainGroups := exercise mainActivatedMuscleGroups.
123
124
self assert: mainGroups size equals: 2.
125
self assert: (mainGroups includes: MFTMuscleGroup chest).
126
self assert: (mainGroups includes: MFTMuscleGroup arm).
127
self deny: (mainGroups includes: MFTMuscleGroup shoulder)
128
]
129
130
{ #category : 'tests' }
131
MFTExerciseTest >> testMainActivatedMuscleGroupsReturnsHighestActivationOnly [
132
133
| exercise mainGroups |
134
exercise := MFTExercise new.
135
exercise
136
activates: MFTMuscleGroup chest percent: 100;
137
activates: MFTMuscleGroup arm percent: 50.
138
139
mainGroups := exercise mainActivatedMuscleGroups.
140
141
self assert: mainGroups size equals: 1.
142
self assert: (mainGroups includes: MFTMuscleGroup chest).
143
self deny: (mainGroups includes: MFTMuscleGroup arm)
144
]
145
146
{ #category : 'tests' }
147
MFTExerciseTest >> testNewWithEnglishNameUsesCallingSelector [
148
149
| exercise |
150
exercise := MFTExercise bicepCurl.
151
152
self assert: exercise englishName equals: 'bicep curl'
153
]
154