Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 36 additions & 3 deletions fdbkubernetesmonitor/api/version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,48 @@
package api

import (
//"encoding/json"
//"os"
"encoding/json"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

var _ = Describe("[api] FDBVersion", func() {
// TODO test a json marshal and unmarshl!
When("marshaling and unmarshaling a Version as JSON", func() {
It("should round-trip a stable version", func() {
original := Version{Major: 7, Minor: 3, Patch: 27}
Comment thread
Ronitsabhaya75 marked this conversation as resolved.
data, err := json.Marshal(&original)
Expect(err).NotTo(HaveOccurred())
Expect(string(data)).To(Equal(`"7.3.27"`))

var decoded Version
Expect(json.Unmarshal(data, &decoded)).To(Succeed())
Expect(decoded).To(Equal(original))
})

It("should round-trip a release candidate version", func() {
original := Version{Major: 7, Minor: 0, Patch: 0, ReleaseCandidate: 3}
data, err := json.Marshal(&original)
Expect(err).NotTo(HaveOccurred())
Expect(string(data)).To(Equal(`"7.0.0-rc3"`))

var decoded Version
Expect(json.Unmarshal(data, &decoded)).To(Succeed())
Expect(decoded).To(Equal(original))
})

It("should return an error when unmarshaling an invalid version string", func() {
var decoded Version
Err := json.Unmarshal([]byte(`"not-a-version"`), &decoded)
Expect(Err).To(HaveOccurred())
})

It("should return an error when unmarshaling a version with missing patch", func() {
var decoded Version
Err := json.Unmarshal([]byte(`"7.3"`), &decoded)
Expect(Err).To(HaveOccurred())
Comment thread
Ronitsabhaya75 marked this conversation as resolved.
Outdated
Comment thread
Ronitsabhaya75 marked this conversation as resolved.
Outdated
})
})

When("checking if the protocol and the version are compatible", func() {
It("should return the correct compatibility", func() {
Expand Down