/
read_file_framework_test.go
49 lines (40 loc) · 1.84 KB
/
read_file_framework_test.go
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
42
43
44
45
46
47
48
49
package test_engine
import (
"fmt"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/builtins/read_file"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/kurtosis_starlark_framework/kurtosis_helper"
"github.com/kurtosis-tech/kurtosis/core/server/api_container/server/startosis_engine/startosis_packages"
"github.com/stretchr/testify/require"
"go.starlark.net/starlark"
"testing"
)
type readFileTestCase struct {
*testing.T
packageContentProvider *startosis_packages.MockPackageContentProvider
}
func newReadFileTestCase(t *testing.T) *readFileTestCase {
packageContentProvider := startosis_packages.NewMockPackageContentProvider(t)
packageContentProvider.EXPECT().GetAbsoluteLocatorForRelativeModuleLocator(frameworkTestThreadName, TestModuleFileName).Return(TestModuleFileName, nil)
packageContentProvider.EXPECT().GetModuleContents(TestModuleFileName).Return("Hello World!", nil)
return &readFileTestCase{
T: t,
packageContentProvider: packageContentProvider,
}
}
func (t *readFileTestCase) GetId() string {
return read_file.ReadFileBuiltinName
}
func (t *readFileTestCase) GetHelper() *kurtosis_helper.KurtosisHelper {
return read_file.NewReadFileHelper(t.packageContentProvider)
}
func (t *readFileTestCase) GetStarlarkCode() string {
return fmt.Sprintf(`%s(%s=%q)`, read_file.ReadFileBuiltinName, read_file.SrcArgName, TestModuleFileName)
}
func (t *readFileTestCase) GetStarlarkCodeForAssertion() string {
return ""
}
func (t *readFileTestCase) Assert(result starlark.Value) {
t.packageContentProvider.AssertCalled(t, "GetAbsoluteLocatorForRelativeModuleLocator", frameworkTestThreadName, TestModuleFileName)
t.packageContentProvider.AssertCalled(t, "GetModuleContents", TestModuleFileName)
require.Equal(t, result, starlark.String("Hello World!"))
}