github.com/aiven/aiven-go-client@v1.36.0/kafka_schemas_acc_test.go (about) 1 package aiven 2 3 import ( 4 "math/rand" 5 "os" 6 "strconv" 7 "time" 8 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Kafka", func() { 14 var ( 15 projectName string 16 project *Project 17 err error 18 ) 19 20 Context("Kafka Schemas CRUD", func() { 21 It("should not error", func() { 22 projectName = os.Getenv("AIVEN_PROJECT_NAME") 23 project, err = client.Projects.Get(projectName) 24 25 Expect(err).NotTo(HaveOccurred()) 26 }) 27 28 It("should populate fields properly", func() { 29 Expect(project).NotTo(BeNil()) 30 31 if project != nil { 32 Expect(project.Name).NotTo(BeEmpty()) 33 } 34 }) 35 36 // kafka service 37 var ( 38 serviceName string 39 service *Service 40 errS error 41 ) 42 43 It("creating service", func() { 44 serviceName = "test-acc-kafka-sc-" + strconv.Itoa(rand.Int()) 45 service, errS = client.Services.Create(projectName, CreateServiceRequest{ 46 Cloud: "google-europe-west1", 47 Plan: "business-4", 48 ProjectVPCID: nil, 49 ServiceName: serviceName, 50 ServiceType: "kafka", 51 UserConfig: map[string]interface{}{ 52 "schema_registry": true, 53 }, 54 }) 55 }) 56 57 It("should not error", func() { 58 Expect(errS).NotTo(HaveOccurred()) 59 }) 60 61 It("should populate fields properly", func() { 62 Expect(service).NotTo(BeNil()) 63 64 if service != nil { 65 Expect(service.Name).NotTo(BeEmpty()) 66 Expect(service.Plan).NotTo(BeEmpty()) 67 Expect(service.Type).Should(Equal("kafka")) 68 69 Eventually(func() string { 70 service, _ = client.Services.Get(projectName, serviceName) 71 return service.State 72 }, 25*time.Minute, 1*time.Minute).Should(Equal("RUNNING")) 73 } 74 }) 75 76 // kafka schema 77 var ( 78 errR error 79 errC error 80 subjectName string 81 ) 82 83 It("create kafka schema subject", func() { 84 time.Sleep(25 * time.Second) 85 _, errC = client.KafkaGlobalSchemaConfig.Update(projectName, serviceName, KafkaSchemaConfig{ 86 CompatibilityLevel: "BACKWARD", 87 }) 88 89 time.Sleep(25 * time.Second) 90 subjectName = "test-subj" 91 _, errR = client.KafkaSubjectSchemas.Add(projectName, serviceName, subjectName, KafkaSchemaSubject{ 92 Schema: `{ 93 "doc": "example", 94 "fields": [{ 95 "default": 5, 96 "doc": "my test number", 97 "name": "test", 98 "namespace": "test", 99 "type": "int" 100 }], 101 "name": "example", 102 "namespace": "example", 103 "type": "record" 104 }`}) 105 }) 106 107 It("should not error global config", func() { 108 Expect(errC).NotTo(HaveOccurred()) 109 }) 110 111 It("should not error subject", func() { 112 Expect(errR).NotTo(HaveOccurred()) 113 }) 114 115 It("should populate fields properly", func() { 116 s, errG := client.KafkaSubjectSchemas.Get(projectName, serviceName, subjectName, 1) 117 Expect(errG).NotTo(HaveOccurred()) 118 Expect(s).NotTo(BeNil()) 119 120 if s != nil { 121 Expect(s.Version.Schema).NotTo(BeEmpty()) 122 Expect(s.Version.Subject).NotTo(BeEmpty()) 123 Expect(s.Version.Version).To(Equal(1)) 124 } 125 }) 126 127 It("should update configuration", func() { 128 _, err := client.KafkaSubjectSchemas.GetConfiguration(projectName, serviceName, subjectName) 129 Expect(err).To(HaveOccurred()) 130 Expect(IsNotFound(err)).To(Equal(true)) 131 132 s, errU := client.KafkaSubjectSchemas.UpdateConfiguration(projectName, serviceName, subjectName, "FORWARD") 133 Expect(errU).NotTo(HaveOccurred()) 134 Expect(s).NotTo(BeNil()) 135 136 if s != nil { 137 Expect(s.CompatibilityLevel).Should(Equal("FORWARD")) 138 } 139 140 s2, errG := client.KafkaSubjectSchemas.GetConfiguration(projectName, serviceName, subjectName) 141 Expect(errG).NotTo(HaveOccurred()) 142 Expect(s2).NotTo(BeNil()) 143 144 if s2 != nil { 145 Expect(s2.CompatibilityLevel).Should(Equal("FORWARD")) 146 } 147 }) 148 149 It("delete Kafka Schema subject and Kafka service", func() { 150 if errD := client.KafkaSubjectSchemas.Delete(projectName, serviceName, subjectName); errD != nil { 151 Fail("cannot delete kafka schema subject:" + errD.Error()) 152 } 153 154 if errD := client.Services.Delete(projectName, serviceName); errD != nil { 155 Fail("cannot delete service:" + errD.Error()) 156 } 157 }) 158 }) 159 })