View raw

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