Test using readers and writers with a METADAPT-A connection
This commit is contained in:
parent
5f503021bf
commit
8add67c5de
@ -129,6 +129,65 @@ func TestTransOpenCloseA(test *testing.T) {
|
|||||||
clientServerEnvironment(test, clientFunc, serverFunc)
|
clientServerEnvironment(test, clientFunc, serverFunc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestReadWriteA(test *testing.T) {
|
||||||
|
payloads := []string {
|
||||||
|
"hello",
|
||||||
|
"world",
|
||||||
|
"When the impostor is sus!",
|
||||||
|
}
|
||||||
|
|
||||||
|
clientFunc := func(a Conn) {
|
||||||
|
test.Log("CLIENT accepting transaction")
|
||||||
|
trans, err := a.AcceptTrans()
|
||||||
|
if err != nil { test.Fatal("CLIENT", err) }
|
||||||
|
test.Log("CLIENT accepted transaction")
|
||||||
|
test.Cleanup(func() { trans.Close() })
|
||||||
|
for method, payload := range payloads {
|
||||||
|
test.Log("CLIENT waiting...")
|
||||||
|
gotMethod, gotReader, err := trans.ReceiveReader()
|
||||||
|
if err != nil { test.Fatal("CLIENT", err) }
|
||||||
|
gotPayloadBytes, err := io.ReadAll(gotReader)
|
||||||
|
if err != nil { test.Fatal("CLIENT", err) }
|
||||||
|
gotPayload := string(gotPayloadBytes)
|
||||||
|
test.Log("CLIENT m:", gotMethod, "p:", gotPayload)
|
||||||
|
if int(gotMethod) != method {
|
||||||
|
test.Errorf("CLIENT method not equal")
|
||||||
|
}
|
||||||
|
if gotPayload != payload {
|
||||||
|
test.Errorf("CLIENT payload not equal")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
test.Log("CLIENT waiting for transaction close...")
|
||||||
|
gotMethod, gotPayload, err := trans.Receive()
|
||||||
|
if !errors.Is(err, io.EOF) {
|
||||||
|
test.Error("CLIENT wrong error:", err)
|
||||||
|
test.Error("CLIENT method:", gotMethod)
|
||||||
|
test.Error("CLIENT payload:", gotPayload)
|
||||||
|
test.Fatal("CLIENT ok byeeeeeeeeeeeee")
|
||||||
|
}
|
||||||
|
test.Log("CLIENT transaction has closed")
|
||||||
|
}
|
||||||
|
|
||||||
|
serverFunc := func(a Conn) {
|
||||||
|
defer test.Log("SERVER closing connection")
|
||||||
|
trans, err := a.OpenTrans()
|
||||||
|
if err != nil { test.Error("SERVER", err); return }
|
||||||
|
test.Cleanup(func() { trans.Close() })
|
||||||
|
for method, payload := range payloads {
|
||||||
|
test.Log("SERVER m:", method, "p:", payload)
|
||||||
|
func() {
|
||||||
|
writer, err := trans.SendWriter(uint16(method))
|
||||||
|
if err != nil { test.Error("SERVER", err); return }
|
||||||
|
defer writer.Close()
|
||||||
|
_, err = writer.Write([]byte(payload))
|
||||||
|
if err != nil { test.Error("SERVER", err); return }
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
clientServerEnvironment(test, clientFunc, serverFunc)
|
||||||
|
}
|
||||||
|
|
||||||
func TestEncodeMessageA(test *testing.T) {
|
func TestEncodeMessageA(test *testing.T) {
|
||||||
buffer := new(bytes.Buffer)
|
buffer := new(bytes.Buffer)
|
||||||
payload := []byte { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }
|
payload := []byte { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user