Fix project test

This commit is contained in:
sophia 2021-07-20 15:41:13 -05:00 committed by Paul Hinze
parent 3de668b821
commit 86dfcefad5
No known key found for this signature in database
GPG key ID: B69DEDF2D55501C0
3 changed files with 125 additions and 90 deletions

View file

@ -20,6 +20,7 @@ func TestProject(t testing.T, src *vagrant_server.Project) *vagrant_server.Proje
require.NoError(t, mergo.Merge(src, &vagrant_server.Project{
Name: "test",
Basis: &vagrant_plugin_sdk.Ref_Basis{},
}))
return src

View file

@ -1,110 +1,119 @@
package state
// import (
// "testing"
import (
"testing"
// "github.com/stretchr/testify/require"
// "google.golang.org/grpc/codes"
// "google.golang.org/grpc/status"
"github.com/stretchr/testify/require"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
// "github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
// serverptypes "github.com/hashicorp/vagrant/internal/server/ptypes"
// )
"github.com/hashicorp/vagrant-plugin-sdk/proto/vagrant_plugin_sdk"
"github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
serverptypes "github.com/hashicorp/vagrant/internal/server/ptypes"
)
// func TestProject(t *testing.T) {
// t.Run("Get returns not found error if not exist", func(t *testing.T) {
// require := require.New(t)
func TestProject(t *testing.T) {
t.Run("Get returns not found error if not exist", func(t *testing.T) {
require := require.New(t)
// s := TestState(t)
// defer s.Close()
s := TestState(t)
defer s.Close()
// // Set
// _, err := s.ProjectGet(&vagrant_server.Ref_Project{
// Project: "foo",
// })
// require.Error(err)
// require.Equal(codes.NotFound, status.Code(err))
// })
// Set
_, err := s.ProjectGet(&vagrant_plugin_sdk.Ref_Project{
ResourceId: "foo",
})
require.Error(err)
require.Equal(codes.NotFound, status.Code(err))
})
// t.Run("Put and Get", func(t *testing.T) {
// require := require.New(t)
t.Run("Put and Get", func(t *testing.T) {
require := require.New(t)
// s := TestState(t)
// defer s.Close()
s := TestState(t)
defer s.Close()
basisRef := testBasis(t, s)
// // Set
// err := s.ProjectPut(serverptypes.TestProject(t, &vagrant_server.Project{
// Name: "AbCdE",
// }))
// require.NoError(err)
// Set
err := s.ProjectPut(serverptypes.TestProject(t, &vagrant_server.Project{
ResourceId: "AbCdE",
Basis: basisRef,
Path: "idontexist",
}))
require.NoError(err)
// // Get exact
// {
// resp, err := s.ProjectGet(&vagrant_server.Ref_Project{
// Project: "AbCdE",
// })
// require.NoError(err)
// require.NotNil(resp)
// }
// Get exact
{
resp, err := s.ProjectGet(&vagrant_plugin_sdk.Ref_Project{
ResourceId: "AbCdE",
})
require.NoError(err)
require.NotNil(resp)
}
// // Get case insensitive
// {
// resp, err := s.ProjectGet(&vagrant_server.Ref_Project{
// Project: "abcDe",
// })
// require.NoError(err)
// require.NotNil(resp)
// }
// TODO:
// Get case insensitive
// {
// resp, err := s.ProjectGet(&vagrant_plugin_sdk.Ref_Project{
// ResourceId: "abcDe",
// })
// require.NoError(err)
// require.NotNil(resp)
// }
// // List
// {
// resp, err := s.ProjectList()
// require.NoError(err)
// require.Len(resp, 1)
// }
// })
// List
{
resp, err := s.ProjectList()
require.NoError(err)
require.Len(resp, 1)
}
})
// t.Run("Delete", func(t *testing.T) {
// require := require.New(t)
t.Run("Delete", func(t *testing.T) {
require := require.New(t)
// s := TestState(t)
// defer s.Close()
s := TestState(t)
defer s.Close()
basisRef := testBasis(t, s)
// // Set
// err := s.ProjectPut(serverptypes.TestProject(t, &vagrant_server.Project{
// Name: "AbCdE",
// }))
// require.NoError(err)
// Set
err := s.ProjectPut(serverptypes.TestProject(t, &vagrant_server.Project{
ResourceId: "AbCdE",
Basis: basisRef,
Path: "idontexist",
}))
require.NoError(err)
// // Read
// resp, err := s.ProjectGet(&vagrant_server.Ref_Project{
// Project: "AbCdE",
// })
// require.NoError(err)
// require.NotNil(resp)
// Read
resp, err := s.ProjectGet(&vagrant_plugin_sdk.Ref_Project{
ResourceId: "AbCdE",
})
require.NoError(err)
require.NotNil(resp)
// // Delete
// {
// err := s.ProjectDelete(&vagrant_server.Ref_Project{
// Project: "AbCdE",
// })
// require.NoError(err)
// }
// Delete
{
err := s.ProjectDelete(&vagrant_plugin_sdk.Ref_Project{
ResourceId: "AbCdE",
Basis: basisRef,
})
require.NoError(err)
}
// // Read
// {
// _, err := s.ProjectGet(&vagrant_server.Ref_Project{
// Project: "AbCdE",
// })
// require.Error(err)
// require.Equal(codes.NotFound, status.Code(err))
// }
// Read
{
_, err := s.ProjectGet(&vagrant_plugin_sdk.Ref_Project{
ResourceId: "AbCdE",
})
require.Error(err)
require.Equal(codes.NotFound, status.Code(err))
}
// // List
// {
// resp, err := s.ProjectList()
// require.NoError(err)
// require.Len(resp, 0)
// }
// })
// }
// List
{
resp, err := s.ProjectList()
require.NoError(err)
require.Len(resp, 0)
}
})
}

View file

@ -7,6 +7,9 @@ import (
"github.com/boltdb/bolt"
"github.com/hashicorp/go-hclog"
"github.com/hashicorp/vagrant-plugin-sdk/proto/vagrant_plugin_sdk"
"github.com/hashicorp/vagrant/internal/server/proto/vagrant_server"
serverptypes "github.com/hashicorp/vagrant/internal/server/ptypes"
"github.com/mitchellh/go-testing-interface"
"github.com/stretchr/testify/require"
)
@ -78,3 +81,25 @@ func testDB(t testing.T) *bolt.DB {
return db
}
// TestBasis creates the basis in the DB.
func testBasis(t testing.T, s *State) *vagrant_plugin_sdk.Ref_Basis {
td := testTempDir(t)
s.BasisPut(serverptypes.TestBasis(t, &vagrant_server.Basis{
ResourceId: "test-basis",
Path: td,
Name: "test-basis",
}))
return &vagrant_plugin_sdk.Ref_Basis{
ResourceId: "test-basis",
Path: td,
Name: "test-basis",
}
}
func testTempDir(t testing.T) string {
dir, err := ioutil.TempDir("", "vagrant-test")
require.NoError(t, err)
t.Cleanup(func() { os.RemoveAll(dir) })
return dir
}