You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/05/08 11:00:26 UTC

[plc4x] branch develop updated: test(plc4go/spi): add test for test transport

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new e2cbfea74f test(plc4go/spi): add test for test transport
e2cbfea74f is described below

commit e2cbfea74f77c3afd6626fc61a4f9b9e8ba9fd47
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon May 8 13:00:19 2023 +0200

    test(plc4go/spi): add test for test transport
---
 plc4go/spi/transports/test/Transport_test.go | 174 ++++++++++++++++++++++++---
 1 file changed, 154 insertions(+), 20 deletions(-)

diff --git a/plc4go/spi/transports/test/Transport_test.go b/plc4go/spi/transports/test/Transport_test.go
index 7e184301a5..db9f541822 100644
--- a/plc4go/spi/transports/test/Transport_test.go
+++ b/plc4go/spi/transports/test/Transport_test.go
@@ -58,7 +58,13 @@ func TestNewTransportInstance(t *testing.T) {
 		args args
 		want *TransportInstance
 	}{
-		// TODO: Add test cases.
+		{
+			name: "create it",
+			want: &TransportInstance{
+				readBuffer:  []byte{},
+				writeBuffer: []byte{},
+			},
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -82,7 +88,9 @@ func TestTransportInstance_Close(t *testing.T) {
 		fields  fields
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "close it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -113,7 +121,9 @@ func TestTransportInstance_Connect(t *testing.T) {
 		fields  fields
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "connect it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -148,7 +158,9 @@ func TestTransportInstance_ConnectWithContext(t *testing.T) {
 		args    args
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "connect it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -183,7 +195,9 @@ func TestTransportInstance_DrainWriteBuffer(t *testing.T) {
 		args   args
 		want   []byte
 	}{
-		// TODO: Add test cases.
+		{
+			name: "drain it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -218,7 +232,26 @@ func TestTransportInstance_FillBuffer(t *testing.T) {
 		args    args
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "fill it (errors)",
+			args: args{
+				until: func(pos uint, currentByte byte, reader *bufio.Reader) bool {
+					return pos < 3
+				},
+			},
+			wantErr: true,
+		},
+		{
+			name: "fill it",
+			fields: fields{
+				readBuffer: []byte{1, 2, 3, 4},
+			},
+			args: args{
+				until: func(pos uint, currentByte byte, reader *bufio.Reader) bool {
+					return pos < 3
+				},
+			},
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -252,7 +285,15 @@ func TestTransportInstance_FillReadBuffer(t *testing.T) {
 		fields fields
 		args   args
 	}{
-		// TODO: Add test cases.
+		{
+			name: "fill it",
+			fields: fields{
+				readBuffer: []byte{1, 2, 3, 4},
+			},
+			args: args{
+				data: []byte{1, 2, 3, 4},
+			},
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -282,7 +323,16 @@ func TestTransportInstance_GetNumBytesAvailableInBuffer(t *testing.T) {
 		want    uint32
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "get it",
+		},
+		{
+			name: "get it",
+			fields: fields{
+				readBuffer: []byte{1, 2, 3, 4},
+			},
+			want: 4,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -318,7 +368,9 @@ func TestTransportInstance_GetNumDrainableBytes(t *testing.T) {
 		fields fields
 		want   uint32
 	}{
-		// TODO: Add test cases.
+		{
+			name: "get it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -349,7 +401,9 @@ func TestTransportInstance_IsConnected(t *testing.T) {
 		fields fields
 		want   bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "check it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -385,7 +439,9 @@ func TestTransportInstance_PeekReadableBytes(t *testing.T) {
 		want    []byte
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "peek it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -426,7 +482,9 @@ func TestTransportInstance_Read(t *testing.T) {
 		want    []byte
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "read it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -465,7 +523,9 @@ func TestTransportInstance_SetWriteInterceptor(t *testing.T) {
 		fields fields
 		args   args
 	}{
-		// TODO: Add test cases.
+		{
+			name: "set it",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -494,7 +554,10 @@ func TestTransportInstance_String(t *testing.T) {
 		fields fields
 		want   string
 	}{
-		// TODO: Add test cases.
+		{
+			name: "string it",
+			want: "test",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -529,7 +592,21 @@ func TestTransportInstance_Write(t *testing.T) {
 		args    args
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "write it",
+		},
+		{
+			name: "write it",
+			fields: fields{
+				writeInterceptor: func(transportInstance *TransportInstance, data []byte) {
+					assert.NotNil(t, transportInstance)
+					assert.Equal(t, []byte{1, 2, 3, 4}, data)
+				},
+			},
+			args: args{
+				data: []byte{1, 2, 3, 4},
+			},
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -561,7 +638,24 @@ func TestTransport_AddPreregisteredInstances(t *testing.T) {
 		args    args
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "add it",
+			fields: fields{
+				preregisteredInstances: map[url.URL]transports.TransportInstance{},
+			},
+		},
+		{
+			name: "add it (existing)",
+			fields: fields{
+				preregisteredInstances: map[url.URL]transports.TransportInstance{
+					url.URL{Host: "abcdefg"}: nil,
+				},
+			},
+			args: args{
+				transportUrl: url.URL{Host: "abcdefg"},
+			},
+			wantErr: true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -590,7 +684,38 @@ func TestTransport_CreateTransportInstance(t *testing.T) {
 		want    transports.TransportInstance
 		wantErr bool
 	}{
-		// TODO: Add test cases.
+		{
+			name: "create it",
+			fields: fields{
+				preregisteredInstances: map[url.URL]transports.TransportInstance{},
+			},
+			want: &TransportInstance{
+				readBuffer:  []byte{},
+				writeBuffer: []byte{},
+				transport:   NewTransport(),
+			},
+		},
+		{
+			name: "create it (pre registered",
+			fields: fields{
+				preregisteredInstances: map[url.URL]transports.TransportInstance{
+					url.URL{Host: "abcdefg"}: nil,
+				},
+			},
+			args: args{
+				transportUrl: url.URL{Host: "abcdefg"},
+			},
+			want: nil,
+		},
+		{
+			name: "fail it on purpose",
+			args: args{
+				options: map[string][]string{
+					"failTestTransport": {"yes please"},
+				},
+			},
+			wantErr: true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -618,7 +743,10 @@ func TestTransport_GetTransportCode(t *testing.T) {
 		fields fields
 		want   string
 	}{
-		// TODO: Add test cases.
+		{
+			name: "get it",
+			want: "test",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -641,7 +769,10 @@ func TestTransport_GetTransportName(t *testing.T) {
 		fields fields
 		want   string
 	}{
-		// TODO: Add test cases.
+		{
+			name: "get it",
+			want: "Test Transport",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -664,7 +795,10 @@ func TestTransport_String(t *testing.T) {
 		fields fields
 		want   string
 	}{
-		// TODO: Add test cases.
+		{
+			name: "string it",
+			want: "test(Test Transport)",
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {