github.com/leg100/ots@v0.0.7-0.20210919080622-034055ced4bd/sqlite/organization_test.go (about) 1 package sqlite 2 3 import ( 4 "testing" 5 6 "github.com/leg100/go-tfe" 7 "github.com/leg100/ots" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestOrganization(t *testing.T) { 12 db, err := New(":memory:") 13 require.NoError(t, err) 14 15 svc := NewOrganizationDB(db) 16 17 // Create 18 19 org, err := svc.Create(&ots.Organization{ 20 Name: "automatize", 21 ID: "org-123", 22 Email: "sysadmin@automatize.co.uk", 23 }) 24 require.NoError(t, err) 25 26 require.Equal(t, uint(1), org.Model.ID) 27 require.Equal(t, "automatize", org.Name) 28 require.Equal(t, "sysadmin@automatize.co.uk", org.Email) 29 30 // Create second org 31 32 org, err = svc.Create(&ots.Organization{ 33 Name: "second", 34 ID: "org-456", 35 Email: "sysadmin@second.org", 36 }) 37 require.NoError(t, err) 38 39 require.Equal(t, uint(2), org.Model.ID) 40 require.Equal(t, "second", org.Name) 41 require.Equal(t, "sysadmin@second.org", org.Email) 42 43 // Update 44 45 org, err = svc.Update("automatize", func(org *ots.Organization) error { 46 org.Email = "newguy@automatize.co.uk" 47 return nil 48 }) 49 require.NoError(t, err) 50 51 require.Equal(t, "newguy@automatize.co.uk", org.Email) 52 53 // Get 54 55 org, err = svc.Get("automatize") 56 require.NoError(t, err) 57 58 require.Equal(t, "newguy@automatize.co.uk", org.Email) 59 60 // List 61 62 orgs, err := svc.List(tfe.OrganizationListOptions{}) 63 require.NoError(t, err) 64 65 require.Equal(t, 2, len(orgs.Items)) 66 67 // List with pagination 68 69 orgs, err = svc.List(tfe.OrganizationListOptions{ListOptions: tfe.ListOptions{PageNumber: 1, PageSize: 1}}) 70 require.NoError(t, err) 71 72 require.Equal(t, 1, len(orgs.Items)) 73 74 orgs, err = svc.List(tfe.OrganizationListOptions{ListOptions: tfe.ListOptions{PageNumber: 2, PageSize: 1}}) 75 require.NoError(t, err) 76 77 require.Equal(t, 1, len(orgs.Items)) 78 79 // Delete 80 81 require.NoError(t, svc.Delete("automatize")) 82 }