Restructure project
We previously didn't really had any structure in our project apart from creating a new folder for each package in our project root. Now that we have accumulated some packages, we use the well-known Golang project layout in order to clearly communicate our intent with packages. See https://github.com/golang-standards/project-layout
This commit is contained in:
76
internal/runner/nomad_environment_storage_test.go
Normal file
76
internal/runner/nomad_environment_storage_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package runner
|
||||
|
||||
import (
|
||||
nomadApi "github.com/hashicorp/nomad/api"
|
||||
"github.com/stretchr/testify/suite"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEnvironmentStoreTestSuite(t *testing.T) {
|
||||
suite.Run(t, new(EnvironmentStoreTestSuite))
|
||||
}
|
||||
|
||||
type EnvironmentStoreTestSuite struct {
|
||||
suite.Suite
|
||||
environmentStorage *localNomadEnvironmentStorage
|
||||
environment *NomadEnvironment
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) SetupTest() {
|
||||
s.environmentStorage = NewLocalNomadEnvironmentStorage()
|
||||
s.environment = &NomadEnvironment{environmentID: defaultEnvironmentID}
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) TestAddedEnvironmentCanBeRetrieved() {
|
||||
s.environmentStorage.Add(s.environment)
|
||||
retrievedEnvironment, ok := s.environmentStorage.Get(s.environment.ID())
|
||||
s.True(ok, "A saved runner should be retrievable")
|
||||
s.Equal(s.environment, retrievedEnvironment)
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) TestEnvironmentWithSameIdOverwritesOldOne() {
|
||||
otherEnvironmentWithSameID := &NomadEnvironment{environmentID: defaultEnvironmentID}
|
||||
otherEnvironmentWithSameID.templateJob = &nomadApi.Job{}
|
||||
s.NotEqual(s.environment, otherEnvironmentWithSameID)
|
||||
|
||||
s.environmentStorage.Add(s.environment)
|
||||
s.environmentStorage.Add(otherEnvironmentWithSameID)
|
||||
retrievedEnvironment, _ := s.environmentStorage.Get(s.environment.ID())
|
||||
s.NotEqual(s.environment, retrievedEnvironment)
|
||||
s.Equal(otherEnvironmentWithSameID, retrievedEnvironment)
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) TestDeletedEnvironmentIsNotAccessible() {
|
||||
s.environmentStorage.Add(s.environment)
|
||||
s.environmentStorage.Delete(s.environment.ID())
|
||||
retrievedRunner, ok := s.environmentStorage.Get(s.environment.ID())
|
||||
s.Nil(retrievedRunner)
|
||||
s.False(ok, "A deleted runner should not be accessible")
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) TestLenOfEmptyPoolIsZero() {
|
||||
s.Equal(0, s.environmentStorage.Length())
|
||||
}
|
||||
|
||||
func (s *EnvironmentStoreTestSuite) TestLenChangesOnStoreContentChange() {
|
||||
s.Run("len increases when environment is added", func() {
|
||||
s.environmentStorage.Add(s.environment)
|
||||
s.Equal(1, s.environmentStorage.Length())
|
||||
})
|
||||
|
||||
s.Run("len does not increase when environment with same id is added", func() {
|
||||
s.environmentStorage.Add(s.environment)
|
||||
s.Equal(1, s.environmentStorage.Length())
|
||||
})
|
||||
|
||||
s.Run("len increases again when different environment is added", func() {
|
||||
anotherEnvironment := &NomadEnvironment{environmentID: anotherEnvironmentID}
|
||||
s.environmentStorage.Add(anotherEnvironment)
|
||||
s.Equal(2, s.environmentStorage.Length())
|
||||
})
|
||||
|
||||
s.Run("len decreases when environment is deleted", func() {
|
||||
s.environmentStorage.Delete(s.environment.ID())
|
||||
s.Equal(1, s.environmentStorage.Length())
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user