From 86dfcefad502cd564cc9978c48efe32db979e86f Mon Sep 17 00:00:00 2001 From: sophia Date: Tue, 20 Jul 2021 15:41:13 -0500 Subject: [PATCH] Fix project test --- internal/server/ptypes/project.go | 1 + .../singleprocess/state/project_test.go | 189 +++++++++--------- .../server/singleprocess/state/testing.go | 25 +++ 3 files changed, 125 insertions(+), 90 deletions(-) diff --git a/internal/server/ptypes/project.go b/internal/server/ptypes/project.go index 68ecd4670..a6506912e 100644 --- a/internal/server/ptypes/project.go +++ b/internal/server/ptypes/project.go @@ -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 diff --git a/internal/server/singleprocess/state/project_test.go b/internal/server/singleprocess/state/project_test.go index 16ef1018e..d5111142d 100644 --- a/internal/server/singleprocess/state/project_test.go +++ b/internal/server/singleprocess/state/project_test.go @@ -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) + } + }) +} diff --git a/internal/server/singleprocess/state/testing.go b/internal/server/singleprocess/state/testing.go index ef2eb21d4..b6f345ef1 100644 --- a/internal/server/singleprocess/state/testing.go +++ b/internal/server/singleprocess/state/testing.go @@ -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 +}