Add minimal Machine/Target setup
This commit is contained in:
parent
147d4f3964
commit
fb642616a8
@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
func TestMachineSetValidId(t *testing.T) {
|
||||
tm, _ := TestMachine(t)
|
||||
tm, _ := TestMinimalMachine(t)
|
||||
|
||||
// Set valid id
|
||||
tm.SetID("something")
|
||||
@ -32,7 +32,7 @@ func TestMachineSetValidId(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestMachineSetEmptyId(t *testing.T) {
|
||||
tm, _ := TestMachine(t)
|
||||
tm, _ := TestMinimalMachine(t)
|
||||
oldId := tm.target.ResourceId
|
||||
|
||||
// Set empty id
|
||||
@ -70,14 +70,15 @@ func TestMachineSetEmptyId(t *testing.T) {
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestMachineConfigedGuest(t *testing.T) {
|
||||
tm, _ := TestMachine(t,
|
||||
WithTestTargetConfig(&vagrant_plugin_sdk.Vagrantfile_MachineConfig{
|
||||
ConfigVm: &vagrant_plugin_sdk.Vagrantfile_ConfigVM{Guest: "myguest"},
|
||||
}),
|
||||
)
|
||||
guest, err := tm.Guest()
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, guest)
|
||||
require.NotNil(t, tm.guest)
|
||||
}
|
||||
// func TestMachineConfigedGuest(t *testing.T) {
|
||||
// tp := TestProject(t)
|
||||
// tm, _ := TestMachine(t, tp,
|
||||
// WithTestTargetConfig(&vagrant_plugin_sdk.Vagrantfile_MachineConfig{
|
||||
// ConfigVm: &vagrant_plugin_sdk.Vagrantfile_ConfigVM{Guest: "myguest"},
|
||||
// }),
|
||||
// )
|
||||
// guest, err := tm.Guest()
|
||||
// require.NoError(t, err)
|
||||
// require.NotNil(t, guest)
|
||||
// require.NotNil(t, tm.guest)
|
||||
// }
|
||||
|
||||
@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestTargetSpecializeMachine(t *testing.T) {
|
||||
tt, _ := TestTarget(t)
|
||||
tt, _ := TestMinimalTarget(t)
|
||||
specialized, err := tt.Specialize((*core.Machine)(nil))
|
||||
|
||||
if err != nil {
|
||||
@ -20,7 +20,7 @@ func TestTargetSpecializeMachine(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestTargetSpecializeBad(t *testing.T) {
|
||||
tt, _ := TestTarget(t)
|
||||
tt, _ := TestMinimalTarget(t)
|
||||
specialized, err := tt.Specialize((*core.Project)(nil))
|
||||
|
||||
if err != nil {
|
||||
|
||||
@ -44,29 +44,3 @@ func TestProject(t testing.T, opts ...BasisOption) *Project {
|
||||
}...)
|
||||
return p
|
||||
}
|
||||
|
||||
// // TestFactorySingle creates a factory for the given component type and
|
||||
// // registers a single implementation and returns that mock. This is useful
|
||||
// // to create a factory for the WithFactory option that returns a mocked value
|
||||
// // that can be tested against.
|
||||
// func TestFactorySingle(t testing.T, typ component.Type, n string) (*factory.Factory, *mock.Mock) {
|
||||
// f := TestFactory(t, typ)
|
||||
// c := componentmocks.ForType(typ)
|
||||
// require.NotNil(t, c)
|
||||
// TestFactoryRegister(t, f, n, c)
|
||||
|
||||
// return f, componentmocks.Mock(c)
|
||||
// }
|
||||
|
||||
// // TestFactory creates a factory for the given component type.
|
||||
// func TestFactory(t testing.T, typ component.Type) *factory.Factory {
|
||||
// f, err := factory.New(component.TypeMap[typ])
|
||||
// require.NoError(t, err)
|
||||
// return f
|
||||
// }
|
||||
|
||||
// // TestFactoryRegister registers a singleton value to be returned for the
|
||||
// // factory for the name n.
|
||||
// func TestFactoryRegister(t testing.T, f *factory.Factory, n string, v interface{}) {
|
||||
// require.NoError(t, f.Register(n, func() interface{} { return v }))
|
||||
// }
|
||||
|
||||
@ -13,8 +13,7 @@ import (
|
||||
// TestTarget returns a fully in-memory and side-effect free Target that
|
||||
// can be used for testing. Additional options can be given to provide your own
|
||||
// factories, configuration, etc.
|
||||
func TestTarget(t testing.T, opts ...TargetOption) (target *Target, err error) {
|
||||
tp := TestProject(t)
|
||||
func TestTarget(t testing.T, tp *Project, opts ...TargetOption) (target *Target, err error) {
|
||||
tp.basis.client.UpsertTarget(
|
||||
context.Background(),
|
||||
&vagrant_server.UpsertTargetRequest{
|
||||
@ -38,11 +37,32 @@ func TestTarget(t testing.T, opts ...TargetOption) (target *Target, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// TestMinimalTarget uses a minimal project to setup the mose basic target
|
||||
// that will work for testing
|
||||
func TestMinimalTarget(t testing.T) (target *Target, err error) {
|
||||
tp := TestProject(t)
|
||||
tp.basis.client.UpsertTarget(
|
||||
context.Background(),
|
||||
&vagrant_server.UpsertTargetRequest{
|
||||
Project: tp.Ref().(*vagrant_plugin_sdk.Ref_Project),
|
||||
Target: &vagrant_server.Target{
|
||||
Name: "test-target",
|
||||
Project: tp.Ref().(*vagrant_plugin_sdk.Ref_Project),
|
||||
},
|
||||
},
|
||||
)
|
||||
target, err = tp.LoadTarget([]TargetOption{
|
||||
WithTargetRef(&vagrant_plugin_sdk.Ref_Target{Project: tp.Ref().(*vagrant_plugin_sdk.Ref_Project), Name: "test-target"}),
|
||||
}...)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// TestMachine returns a fully in-memory and side-effect free Machine that
|
||||
// can be used for testing. Additional options can be given to provide your own
|
||||
// factories, configuration, etc.
|
||||
func TestMachine(t testing.T, opts ...TestMachineOption) (machine *Machine, err error) {
|
||||
tt, _ := TestTarget(t)
|
||||
func TestMachine(t testing.T, tp *Project, opts ...TestMachineOption) (machine *Machine, err error) {
|
||||
tt, _ := TestTarget(t, tp)
|
||||
specialized, err := tt.Specialize((*core.Machine)(nil))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -56,6 +76,19 @@ func TestMachine(t testing.T, opts ...TestMachineOption) (machine *Machine, err
|
||||
return
|
||||
}
|
||||
|
||||
// TestMinimalMachine uses a minimal project to setup the mose basic machine
|
||||
// that will work for testing
|
||||
func TestMinimalMachine(t testing.T) (machine *Machine, err error) {
|
||||
tp := TestProject(t)
|
||||
tt, _ := TestTarget(t, tp)
|
||||
specialized, err := tt.Specialize((*core.Machine)(nil))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
machine = specialized.(*Machine)
|
||||
return
|
||||
}
|
||||
|
||||
type TestMachineOption func(*Machine) error
|
||||
|
||||
func WithTestTargetConfig(config *vagrant_plugin_sdk.Vagrantfile_MachineConfig) TestMachineOption {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user