Files
ownwire-go-sdk/protocol_test.go

37 lines
1.0 KiB
Go
Raw Normal View History

package ownwire_sdk_test
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
sdk "ownwire.net/ownwire-sdk"
)
var _ = Describe("ParseSessionInit", func() {
It("parses a valid /session line", func() {
line := "/session:cb653f53-6f7d-4aeb-ba0d-d2b17c290d8a:SERVERPUBB64:SALTB64:12:34"
parsed, err := sdk.ParseSessionInit(line)
Expect(err).To(BeNil())
Expect(parsed.SessionId).To(Equal("cb653f53-6f7d-4aeb-ba0d-d2b17c290d8a"))
Expect(parsed.ServerPubKeyB64).To(Equal("SERVERPUBB64"))
Expect(parsed.SaltB64).To(Equal("SALTB64"))
Expect(parsed.SeqOut).To(Equal(uint64(12)))
Expect(parsed.SeqInMax).To(Equal(uint64(34)))
})
It("rejects non-session lines", func() {
_, err := sdk.ParseSessionInit("/wat:1:2:3:4:5")
Expect(err).ToNot(BeNil())
})
It("rejects missing fields", func() {
_, err := sdk.ParseSessionInit("/session:1:2:3")
Expect(err).ToNot(BeNil())
})
It("rejects bad sequence numbers", func() {
_, err := sdk.ParseSessionInit("/session:1:2:3:nope:5")
Expect(err).ToNot(BeNil())
})
})