blob: f32c16c4fed6140fe58269c975c34ca18813daef [file] [log] [blame]
Scott Baker2c1c4822019-10-16 11:02:41 -07001/*
2 * Copyright 2018-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package kafka
17
18import (
19 "github.com/stretchr/testify/assert"
20 "testing"
21)
22
23func TestDefaultKafkaProxy(t *testing.T) {
Kent Hagerman3a402302020-01-31 15:03:53 -050024 actualResult := newInterContainerProxy()
Scott Baker2c1c4822019-10-16 11:02:41 -070025 assert.Equal(t, actualResult.kafkaHost, DefaultKafkaHost)
26 assert.Equal(t, actualResult.kafkaPort, DefaultKafkaPort)
27 assert.Equal(t, actualResult.defaultRequestHandlerInterface, interface{}(nil))
28}
29
30func TestKafkaProxyOptionHost(t *testing.T) {
Kent Hagerman3a402302020-01-31 15:03:53 -050031 actualResult := newInterContainerProxy(InterContainerHost("10.20.30.40"))
Scott Baker2c1c4822019-10-16 11:02:41 -070032 assert.Equal(t, actualResult.kafkaHost, "10.20.30.40")
33 assert.Equal(t, actualResult.kafkaPort, DefaultKafkaPort)
34 assert.Equal(t, actualResult.defaultRequestHandlerInterface, interface{}(nil))
35}
36
37func TestKafkaProxyOptionPort(t *testing.T) {
Kent Hagerman3a402302020-01-31 15:03:53 -050038 actualResult := newInterContainerProxy(InterContainerPort(1020))
Scott Baker2c1c4822019-10-16 11:02:41 -070039 assert.Equal(t, actualResult.kafkaHost, DefaultKafkaHost)
40 assert.Equal(t, actualResult.kafkaPort, 1020)
41 assert.Equal(t, actualResult.defaultRequestHandlerInterface, interface{}(nil))
42}
43
44func TestKafkaProxyOptionTopic(t *testing.T) {
Kent Hagerman3a402302020-01-31 15:03:53 -050045 actualResult := newInterContainerProxy(DefaultTopic(&Topic{Name: "Adapter"}))
Scott Baker2c1c4822019-10-16 11:02:41 -070046 assert.Equal(t, actualResult.kafkaHost, DefaultKafkaHost)
47 assert.Equal(t, actualResult.kafkaPort, DefaultKafkaPort)
48 assert.Equal(t, actualResult.defaultRequestHandlerInterface, interface{}(nil))
Matteo Scandolof346a2d2020-01-24 13:14:54 -080049 assert.Equal(t, actualResult.defaultTopic.Name, "Adapter")
Scott Baker2c1c4822019-10-16 11:02:41 -070050}
51
52type myInterface struct {
53}
54
Scott Baker2c1c4822019-10-16 11:02:41 -070055func TestKafkaProxyOptionTargetInterface(t *testing.T) {
56 var m *myInterface
Kent Hagerman3a402302020-01-31 15:03:53 -050057 actualResult := newInterContainerProxy(RequestHandlerInterface(m))
Scott Baker2c1c4822019-10-16 11:02:41 -070058 assert.Equal(t, actualResult.kafkaHost, DefaultKafkaHost)
59 assert.Equal(t, actualResult.kafkaPort, DefaultKafkaPort)
60 assert.Equal(t, actualResult.defaultRequestHandlerInterface, m)
61}
62
63func TestKafkaProxyChangeAllOptions(t *testing.T) {
64 var m *myInterface
Kent Hagerman3a402302020-01-31 15:03:53 -050065 actualResult := newInterContainerProxy(
Scott Baker2c1c4822019-10-16 11:02:41 -070066 InterContainerHost("10.20.30.40"),
67 InterContainerPort(1020),
68 DefaultTopic(&Topic{Name: "Adapter"}),
69 RequestHandlerInterface(m))
Scott Baker2c1c4822019-10-16 11:02:41 -070070 assert.Equal(t, actualResult.kafkaHost, "10.20.30.40")
71 assert.Equal(t, actualResult.kafkaPort, 1020)
72 assert.Equal(t, actualResult.defaultRequestHandlerInterface, m)
Matteo Scandolof346a2d2020-01-24 13:14:54 -080073 assert.Equal(t, actualResult.defaultTopic.Name, "Adapter")
Scott Baker2c1c4822019-10-16 11:02:41 -070074}
Scott Baker104b67d2019-10-29 15:56:27 -070075
76func TestKafkaProxyEnableLivenessChannel(t *testing.T) {
77 var m *myInterface
78
79 // Note: This doesn't actually start the client
80 client := NewSaramaClient()
81
Kent Hagerman3a402302020-01-31 15:03:53 -050082 probe := newInterContainerProxy(
Scott Baker104b67d2019-10-29 15:56:27 -070083 InterContainerHost("10.20.30.40"),
84 InterContainerPort(1020),
85 DefaultTopic(&Topic{Name: "Adapter"}),
86 RequestHandlerInterface(m),
87 MsgClient(client),
88 )
89
Scott Baker104b67d2019-10-29 15:56:27 -070090 ch := probe.EnableLivenessChannel(true)
91
92 // The channel should have one "true" message on it
93 assert.NotEmpty(t, ch)
94
95 select {
96 case stuff := <-ch:
97 assert.True(t, stuff)
98 default:
99 t.Error("Failed to read from the channel")
100 }
101}