File: interfaces_test.go

package info (click to toggle)
golang-go.uber-mock 0.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,176 kB
  • sloc: sh: 37; makefile: 3
file content (41 lines) | stat: -rw-r--r-- 1,079 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package mock

import (
	"testing"

	"go.uber.org/mock/gomock"
	"go.uber.org/mock/mockgen/internal/tests/package_mode"
	"go.uber.org/mock/mockgen/internal/tests/package_mode/cars"
	"go.uber.org/mock/mockgen/internal/tests/package_mode/fuel"
)

// checks, that mocks implement interfaces in compile-time.
// If something breaks, the tests will not be compiled.

var food package_mode.Food = &MockFood{}

var eater package_mode.Eater = &MockEater{}

var animal package_mode.Animal = &MockAnimal{}

var human package_mode.Human = &MockHuman{}

var primate package_mode.Primate = &MockPrimate{}

var car package_mode.Car[fuel.Gasoline] = &MockCar[fuel.Gasoline]{}

var driver package_mode.Driver[fuel.Gasoline, cars.HyundaiSolaris] = &MockDriver[fuel.Gasoline, cars.HyundaiSolaris]{}

var urbanResident package_mode.UrbanResident = &MockUrbanResident{}

var farmer package_mode.Farmer = &MockFarmer{}

func TestInterfaces(t *testing.T) {
	ctrl := gomock.NewController(t)

	mock := NewMockFarmer(ctrl)
	mock.EXPECT().Breathe()

	farmer := package_mode.Farmer(mock)
	farmer.Breathe()
}