" A MFTExerciseTest is a test class for testing the behavior of MFTExercise " Class { #name : 'MFTExerciseTest', #superclass : 'TestCase', #category : 'MyFitnessTracker-Core-Tests-Base', #package : 'MyFitnessTracker-Core-Tests', #tag : 'Base' } { #category : 'tests' } MFTExerciseTest >> testActivatingOneMuscleGroupMakesItMain [ | exercise mainGroups | exercise := MFTExercise new. exercise activates: MFTMuscleGroup chest. mainGroups := exercise mainActivatedMuscleGroups. self assert: mainGroups size equals: 1. self assert: (mainGroups includes: MFTMuscleGroup chest) ] { #category : 'tests' } MFTExerciseTest >> testBarbellBenchPressFactoryIsComplete [ | exercise mainGroups | exercise := MFTExercise barbellBenchPress. mainGroups := exercise mainActivatedMuscleGroups. self assert: exercise englishName equals: 'barbell bench press'. self assert: exercise equipment equals: MFTEquipment barbell. self assert: (mainGroups includes: MFTMuscleGroup chest) ] { #category : 'tests' } MFTExerciseTest >> testCloseGripPalmsUpPulldownFactoryIsComplete [ | exercise mainGroups | exercise := MFTExercise closeGripPalmsUpPulldown. mainGroups := exercise mainActivatedMuscleGroups. self assert: exercise englishName equals: 'close-grip palms-up pulldown'. self assert: exercise equipment equals: MFTEquipment cable. self assert: (mainGroups includes: MFTMuscleGroup back) ] { #category : 'tests' } MFTExerciseTest >> testEquipmentCanBeAssigned [ | exercise | exercise := MFTExercise new. exercise equipment: MFTEquipment dumbbell. self assert: exercise equipment equals: MFTEquipment dumbbell ] { #category : 'tests' } MFTExerciseTest >> testExerciseWithNoMuscleGroupsHasNoMainActivatedMuscleGroups [ | exercise | exercise := MFTExercise new. self assert: exercise mainActivatedMuscleGroups equals: nil ] { #category : 'tests' } MFTExerciseTest >> testExercisesWithDifferentEnglishNamesAreNotEqual [ | first second | first := MFTExercise new englishName: 'barbell bench press'; equipment: MFTEquipment barbell. second := MFTExercise new englishName: 'barbell squat'; equipment: MFTEquipment barbell. self deny: first equals: second ] { #category : 'tests' } MFTExerciseTest >> testExercisesWithDifferentEquipmentAreNotEqual [ | first second | first := MFTExercise new englishName: 'bench press'; equipment: MFTEquipment barbell. second := MFTExercise new englishName: 'bench press'; equipment: MFTEquipment dumbbell. self deny: first equals: second ] { #category : 'tests' } MFTExerciseTest >> testExercisesWithSameEnglishNameAndEquipmentAreEqual [ | first second | first := MFTExercise new englishName: 'barbell bench press'; equipment: MFTEquipment barbell. second := MFTExercise new englishName: 'barbell bench press'; equipment: MFTEquipment barbell. self assert: first equals: second. self assert: first hash equals: second hash ] { #category : 'tests' } MFTExerciseTest >> testMainActivatedMuscleGroupsReturnsAllTiedHighestActivations [ | exercise mainGroups | exercise := MFTExercise new. exercise activates: MFTMuscleGroup chest percent: 100; activates: MFTMuscleGroup arm percent: 100; activates: MFTMuscleGroup shoulder percent: 50. mainGroups := exercise mainActivatedMuscleGroups. self assert: mainGroups size equals: 2. self assert: (mainGroups includes: MFTMuscleGroup chest). self assert: (mainGroups includes: MFTMuscleGroup arm). self deny: (mainGroups includes: MFTMuscleGroup shoulder) ] { #category : 'tests' } MFTExerciseTest >> testMainActivatedMuscleGroupsReturnsHighestActivationOnly [ | exercise mainGroups | exercise := MFTExercise new. exercise activates: MFTMuscleGroup chest percent: 100; activates: MFTMuscleGroup arm percent: 50. mainGroups := exercise mainActivatedMuscleGroups. self assert: mainGroups size equals: 1. self assert: (mainGroups includes: MFTMuscleGroup chest). self deny: (mainGroups includes: MFTMuscleGroup arm) ] { #category : 'tests' } MFTExerciseTest >> testNewWithEnglishNameUsesCallingSelector [ | exercise | exercise := MFTExercise bicepCurl. self assert: exercise englishName equals: 'bicep curl' ]