add unit test
This commit is contained in:
91
hamster_tycoon/hamster_test.go
Normal file
91
hamster_tycoon/hamster_test.go
Normal file
@@ -0,0 +1,91 @@
|
||||
package hamster_tycoon
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDie(t *testing.T) {
|
||||
testCases := []struct {
|
||||
caseName string
|
||||
hamster *Hamster
|
||||
expectedAlive bool
|
||||
}{
|
||||
{
|
||||
caseName: "Should die",
|
||||
hamster: &Hamster{
|
||||
Alive: true,
|
||||
},
|
||||
expectedAlive: false,
|
||||
},
|
||||
{
|
||||
caseName: "Already die",
|
||||
hamster: &Hamster{
|
||||
Alive: false,
|
||||
},
|
||||
expectedAlive: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.caseName, func(t *testing.T) {
|
||||
tc.hamster.Die()
|
||||
if tc.hamster.Alive != tc.expectedAlive {
|
||||
t.Errorf("Die result does not match expectation. \n Got : %t \n Get : %t", tc.expectedAlive, tc.hamster.Alive)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestFuck(t *testing.T) {
|
||||
testCases := []struct {
|
||||
caseName string
|
||||
hamster1 *Hamster
|
||||
hamster2 *Hamster
|
||||
expectedResult bool
|
||||
expectedError error
|
||||
}{
|
||||
{
|
||||
caseName: "Hamster 1 too young",
|
||||
hamster1: &Hamster{
|
||||
Alive: true,
|
||||
Sexe: MALE,
|
||||
Age: GestationMinAge - 1,
|
||||
},
|
||||
hamster2: &Hamster{
|
||||
Alive: true,
|
||||
Sexe: FEMALE,
|
||||
Age: GestationMinAge + 1,
|
||||
},
|
||||
expectedResult: false,
|
||||
expectedError: errors.New("one of the hamster is too young"),
|
||||
},
|
||||
{
|
||||
caseName: "Hamster 2 too young",
|
||||
hamster1: &Hamster{
|
||||
Alive: false,
|
||||
Sexe: MALE,
|
||||
Age: GestationMinAge + 1,
|
||||
},
|
||||
hamster2: &Hamster{
|
||||
Alive: true,
|
||||
Sexe: FEMALE,
|
||||
Age: GestationMinAge - 1,
|
||||
},
|
||||
expectedResult: false,
|
||||
expectedError: errors.New("one of the hamster is too young"),
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.caseName, func(t *testing.T) {
|
||||
bool, err := tc.hamster1.Fuck(tc.hamster2)
|
||||
if tc.expectedResult != bool {
|
||||
t.Errorf("Fuck result does not match expectation. \n Got : %t \n Get : %t", tc.expectedResult, bool)
|
||||
}
|
||||
if tc.expectedError.Error() != err.Error() {
|
||||
t.Errorf("Fuck result does not match expectation. \n Got : %s \n Get : %s", tc.expectedError, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user