@@ -18,9 +18,10 @@ package backupfactory
1818
1919import (
2020 "context"
21- "fmt"
2221 "testing"
2322
23+ . "github.com/onsi/ginkgo"
24+ . "github.com/onsi/gomega"
2425 // core "k8s.io/api/core/v1"
2526 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627 "k8s.io/client-go/kubernetes/fake"
@@ -31,16 +32,18 @@ import (
3132 tutil "github.com/presslabs/mysql-operator/pkg/util/test"
3233)
3334
35+ func TestBackupFactory (t * testing.T ) {
36+ RegisterFailHandler (Fail )
37+ RunSpecs (t , "Test backups factory" )
38+ }
39+
3440func getFakeFactory (backup * api.MysqlBackup , k8Client * fake.Clientset ,
3541 myClient * fakeMyClient.Clientset ) * bFactory {
3642
3743 cluster , err := myClient .MysqlV1alpha1 ().MysqlClusters (backup .Namespace ).Get (
3844 backup .Spec .ClusterName , metav1.GetOptions {})
3945
40- if err != nil {
41- fmt .Println ("Failed to get cluster:" , err )
42- }
43-
46+ Expect (err ).To (Succeed ())
4447 return & bFactory {
4548 backup : backup ,
4649 cluster : cluster ,
@@ -49,40 +52,67 @@ func getFakeFactory(backup *api.MysqlBackup, k8Client *fake.Clientset,
4952 }
5053}
5154
52- // TestSync
53- // Test: sync a backup for a cluster
54- // Expect: sync successful, job created
55- func TestSync (t * testing.T ) {
56- client := fake .NewSimpleClientset ()
57- myClient := fakeMyClient .NewSimpleClientset ()
58-
59- cluster := tutil .NewFakeCluster ("test-2" )
60- _ , err := myClient .MysqlV1alpha1 ().MysqlClusters (tutil .Namespace ).Create (cluster )
61- if err != nil {
62- fmt .Println ("Failed to create cluster:" , err )
63- }
64- backup := tutil .NewFakeBackup ("test-1" , cluster .Name )
65- f := getFakeFactory (backup , client , myClient )
66-
67- err = f .SetDefaults ()
68- if err != nil {
69- t .Fail ()
70- }
71-
72- ctx := context .TODO ()
73- err = f .Sync (ctx )
74- if err != nil {
75- t .Fail ()
76- }
77-
78- _ , err = client .BatchV1 ().Jobs (tutil .Namespace ).Get (f .getJobName (), metav1.GetOptions {})
79- if err != nil {
80- t .Fail ()
81- return
82- }
83-
84- err = f .Sync (ctx )
85- if err != nil {
86- t .Fail ()
87- }
88- }
55+ var _ = Describe ("Test backup factory" , func () {
56+ var (
57+ client * fake.Clientset
58+ myClient * fakeMyClient.Clientset
59+
60+ ctx context.Context
61+ )
62+
63+ BeforeEach (func () {
64+ client = fake .NewSimpleClientset ()
65+ myClient = fakeMyClient .NewSimpleClientset ()
66+
67+ ctx = context .TODO ()
68+ })
69+
70+ Describe ("Test a simple sync" , func () {
71+ Context ("A backup is created but not initialized" , func () {
72+ It ("sync should be successful" , func () {
73+ cluster := tutil .NewFakeCluster ("test-cluster-1" )
74+ backup := tutil .NewFakeBackup ("test-backup-1" , cluster .Name )
75+
76+ cluster .Spec .BackupUri = "gs://some-bucket/"
77+ _ , err := myClient .MysqlV1alpha1 ().MysqlClusters (tutil .Namespace ).Create (cluster )
78+ Expect (err ).To (Succeed ())
79+
80+ f := getFakeFactory (backup , client , myClient )
81+ Expect (f .SetDefaults ()).To (Succeed ())
82+ Expect (backup .Status .BackupUri ).To (ContainSubstring ("gs://some-bucket" ))
83+ Expect (f .Sync (ctx )).To (Succeed ())
84+
85+ _ , err = client .BatchV1 ().Jobs (tutil .Namespace ).Get (
86+ f .getJobName (), metav1.GetOptions {})
87+ Expect (err ).To (Succeed ())
88+ Expect (f .Sync (ctx )).To (Succeed ())
89+ })
90+
91+ It ("sync a backup with init bucket uri" , func () {
92+ cluster := tutil .NewFakeCluster ("test-cluster-1" )
93+ backup := tutil .NewFakeBackup ("test-backup-1" , cluster .Name )
94+
95+ backup .Spec .BackupUri = "gs://other-backup/test.gz"
96+ cluster .Spec .BackupUri = "gs://some-bucket/"
97+ _ , err := myClient .MysqlV1alpha1 ().MysqlClusters (tutil .Namespace ).Create (cluster )
98+ Expect (err ).To (Succeed ())
99+
100+ f := getFakeFactory (backup , client , myClient )
101+ Expect (f .SetDefaults ()).To (Succeed ())
102+ Expect (backup .Status .BackupUri ).To (ContainSubstring ("gs://other-backup" ))
103+ Expect (f .Sync (ctx )).To (Succeed ())
104+ })
105+ It ("sync a backup with no bucket uri" , func () {
106+ cluster := tutil .NewFakeCluster ("test-cluster-1" )
107+ backup := tutil .NewFakeBackup ("test-backup-1" , cluster .Name )
108+
109+ _ , err := myClient .MysqlV1alpha1 ().MysqlClusters (tutil .Namespace ).Create (cluster )
110+ Expect (err ).To (Succeed ())
111+
112+ f := getFakeFactory (backup , client , myClient )
113+ Expect (f .SetDefaults ()).To (Succeed ())
114+ Expect (f .Sync (ctx )).ToNot (Succeed ())
115+ })
116+ })
117+ })
118+ })
0 commit comments