Skip to content

Commit 6afd361

Browse files
authored
Merge branch 'develop' into control-station/gauge
2 parents ae6f49b + e199dbc commit 6afd361

21 files changed

Lines changed: 484 additions & 543 deletions

File tree

backend/pkg/broker/topics/blcu/blcu_test.go

Lines changed: 3 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ import (
66
"github.com/HyperloopUPV-H8/h9-backend/pkg/abstraction"
77
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker"
88
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/blcu"
9+
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/tests_functions"
910
"github.com/HyperloopUPV-H8/h9-backend/pkg/websocket"
1011
ws "github.com/gorilla/websocket"
1112
"github.com/rs/zerolog"
1213
"log"
13-
"net/http"
14-
"net/url"
1514
"os"
1615
"testing"
1716
"time"
@@ -56,40 +55,8 @@ func (api MockAPI) UserPull(request abstraction.BrokerRequest) (abstraction.Brok
5655

5756
func TestBLCUTopic_Download_Push(t *testing.T) {
5857
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
59-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/download"}
6058
clientChan := make(chan *websocket.Client)
61-
62-
// Start HTTP server with WebSocket upgrade and echo back
63-
http.HandleFunc("/download", func(writer http.ResponseWriter, request *http.Request) {
64-
upgrader := ws.Upgrader{
65-
CheckOrigin: func(r *http.Request) bool { return true },
66-
}
67-
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
68-
if upgradeErr != nil {
69-
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
70-
return
71-
}
72-
defer conn.Close()
73-
defer logger.Info().Str("id", "server").Msg("Connection closed")
74-
75-
// Handle and echo messages continuously
76-
go func() {
77-
for {
78-
_, msg, readMsgRead := conn.ReadMessage()
79-
if readMsgRead != nil {
80-
logger.Error().Err(readMsgRead).Msg("Read error")
81-
return
82-
}
83-
writeMsgErr := conn.WriteMessage(ws.TextMessage, msg)
84-
if writeMsgErr != nil {
85-
logger.Error().Err(writeMsgErr).Msg("Write error")
86-
return
87-
}
88-
}
89-
}()
90-
})
91-
92-
go http.ListenAndServe(":8080", nil)
59+
u := tests_functions.StartServer(logger, "download")
9360

9461
// Mock first client as it always fails
9562
c, _, err := ws.DefaultDialer.Dial(u.String(), nil)
@@ -164,40 +131,8 @@ func TestBLCUTopic_Download_ClientMessage(t *testing.T) {
164131

165132
func TestBLCUTopic_Upload_Push(t *testing.T) {
166133
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
167-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/upload"}
168134
clientChan := make(chan *websocket.Client)
169-
170-
// Start HTTP server with WebSocket upgrade and echo back
171-
http.HandleFunc("/upload", func(writer http.ResponseWriter, request *http.Request) {
172-
upgrader := ws.Upgrader{
173-
CheckOrigin: func(r *http.Request) bool { return true },
174-
}
175-
conn, err := upgrader.Upgrade(writer, request, nil)
176-
if err != nil {
177-
logger.Error().Err(err).Msg("Failed to upgrade")
178-
return
179-
}
180-
defer conn.Close()
181-
defer logger.Info().Str("id", "server").Msg("Connection closed")
182-
183-
// Handle and echo messages continuously
184-
go func() {
185-
for {
186-
_, msg, err := conn.ReadMessage()
187-
if err != nil {
188-
logger.Error().Err(err).Msg("Read error")
189-
return
190-
}
191-
err = conn.WriteMessage(ws.TextMessage, msg)
192-
if err != nil {
193-
logger.Error().Err(err).Msg("Write error")
194-
return
195-
}
196-
}
197-
}()
198-
})
199-
200-
go http.ListenAndServe(":8080", nil)
135+
u := tests_functions.StartServer(logger, "upload")
201136

202137
// Set up the client
203138
c, _, err := ws.DefaultDialer.Dial(u.String(), nil)

backend/pkg/broker/topics/connection/connection_test.go

Lines changed: 3 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -4,52 +4,19 @@ import (
44
"encoding/json"
55
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker"
66
data "github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/connection"
7+
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/tests_functions"
78
"github.com/HyperloopUPV-H8/h9-backend/pkg/websocket"
89
ws "github.com/gorilla/websocket"
910
"github.com/rs/zerolog"
10-
"net/http"
11-
"net/url"
1211
"os"
1312
"testing"
1413
"time"
1514
)
1615

1716
func TestConnectionTopic_Push(t *testing.T) {
1817
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
19-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/connection"}
2018
clientChan := make(chan *websocket.Client)
21-
22-
// Start HTTP server with WebSocket upgrade and echo back
23-
http.HandleFunc("/connection", func(writer http.ResponseWriter, request *http.Request) {
24-
upgrader := ws.Upgrader{
25-
CheckOrigin: func(r *http.Request) bool { return true },
26-
}
27-
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
28-
if upgradeErr != nil {
29-
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
30-
return
31-
}
32-
defer conn.Close()
33-
defer logger.Info().Str("id", "server").Msg("Connection closed")
34-
35-
// Handle and echo messages continuously
36-
go func() {
37-
for {
38-
_, msg, readMsgErr := conn.ReadMessage()
39-
if readMsgErr != nil {
40-
logger.Error().Err(readMsgErr).Msg("Read error")
41-
return
42-
}
43-
readMsgErr = conn.WriteMessage(ws.TextMessage, msg)
44-
if readMsgErr != nil {
45-
logger.Error().Err(readMsgErr).Msg("Write error")
46-
return
47-
}
48-
}
49-
}()
50-
})
51-
52-
go http.ListenAndServe(":8080", nil)
19+
u := tests_functions.StartServer(logger, "connection")
5320

5421
// Set up the client
5522
c, _, clientErr := ws.DefaultDialer.Dial(u.String(), nil)
@@ -107,40 +74,8 @@ func TestConnectionTopic_Push(t *testing.T) {
10774

10875
func TestConnectionTopic_ClientMessage(t *testing.T) {
10976
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
110-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/connectioncm"}
11177
clientChan := make(chan *websocket.Client)
112-
113-
// Start HTTP server with WebSocket upgrade and echo back
114-
http.HandleFunc("/connectioncm", func(writer http.ResponseWriter, request *http.Request) {
115-
upgrader := ws.Upgrader{
116-
CheckOrigin: func(r *http.Request) bool { return true },
117-
}
118-
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
119-
if upgradeErr != nil {
120-
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
121-
return
122-
}
123-
defer conn.Close()
124-
defer logger.Info().Str("id", "server").Msg("Connection closed")
125-
126-
// Handle and echo messages continuously
127-
go func() {
128-
for {
129-
_, msg, readMsgErr := conn.ReadMessage()
130-
if readMsgErr != nil {
131-
logger.Error().Err(readMsgErr).Msg("Read error")
132-
return
133-
}
134-
readMsgErr = conn.WriteMessage(ws.TextMessage, msg)
135-
if readMsgErr != nil {
136-
logger.Error().Err(readMsgErr).Msg("Write error")
137-
return
138-
}
139-
}
140-
}()
141-
})
142-
143-
go http.ListenAndServe(":8080", nil)
78+
u := tests_functions.StartServer(logger, "conncetioncm")
14479

14580
// Set up the client
14681
c, _, clientErr := ws.DefaultDialer.Dial(u.String(), nil)

backend/pkg/broker/topics/data/data_test.go

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,52 +5,19 @@ import (
55
"github.com/HyperloopUPV-H8/h9-backend/internal/update_factory/models"
66
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker"
77
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/data"
8+
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/tests_functions"
89
"github.com/HyperloopUPV-H8/h9-backend/pkg/websocket"
910
ws "github.com/gorilla/websocket"
1011
"github.com/rs/zerolog"
11-
"net/http"
12-
"net/url"
1312
"os"
1413
"testing"
1514
"time"
1615
)
1716

1817
func TestDataTopic_Push(t *testing.T) {
1918
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
20-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/data"}
2119
clientChan := make(chan *websocket.Client)
22-
23-
// Start HTTP server with WebSocket upgrade and echo back
24-
http.HandleFunc("/data", func(writer http.ResponseWriter, request *http.Request) {
25-
upgrader := ws.Upgrader{
26-
CheckOrigin: func(r *http.Request) bool { return true },
27-
}
28-
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
29-
if upgradeErr != nil {
30-
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
31-
return
32-
}
33-
defer conn.Close()
34-
defer logger.Info().Str("id", "server").Msg("Connection closed")
35-
36-
// Handle and echo messages continuously
37-
go func() {
38-
for {
39-
_, msg, readMsgErr := conn.ReadMessage()
40-
if readMsgErr != nil {
41-
logger.Error().Err(readMsgErr).Msg("Read error")
42-
return
43-
}
44-
readMsgErr = conn.WriteMessage(ws.TextMessage, msg)
45-
if readMsgErr != nil {
46-
logger.Error().Err(readMsgErr).Msg("Write error")
47-
return
48-
}
49-
}
50-
}()
51-
})
52-
53-
go http.ListenAndServe(":8080", nil)
20+
u := tests_functions.StartServer(logger, "data")
5421

5522
// Set up the client
5623
c, _, clientErr := ws.DefaultDialer.Dial(u.String(), nil)

backend/pkg/broker/topics/message/message_test.go

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,53 +5,20 @@ import (
55
"github.com/HyperloopUPV-H8/h9-backend/pkg/abstraction"
66
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker"
77
data "github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/message"
8+
"github.com/HyperloopUPV-H8/h9-backend/pkg/broker/topics/tests_functions"
89
"github.com/HyperloopUPV-H8/h9-backend/pkg/transport/packet/protection"
910
"github.com/HyperloopUPV-H8/h9-backend/pkg/websocket"
1011
ws "github.com/gorilla/websocket"
1112
"github.com/rs/zerolog"
12-
"net/http"
13-
"net/url"
1413
"os"
1514
"testing"
1615
"time"
1716
)
1817

1918
func TestMessageTopic_Push(t *testing.T) {
2019
logger := zerolog.New(os.Stdout).With().Timestamp().Logger()
21-
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: "/message"}
2220
clientChan := make(chan *websocket.Client)
23-
24-
// Start HTTP server with WebSocket upgrade and echo back
25-
http.HandleFunc("/message", func(writer http.ResponseWriter, request *http.Request) {
26-
upgrader := ws.Upgrader{
27-
CheckOrigin: func(r *http.Request) bool { return true },
28-
}
29-
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
30-
if upgradeErr != nil {
31-
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
32-
return
33-
}
34-
defer conn.Close()
35-
defer logger.Info().Str("id", "server").Msg("Connection closed")
36-
37-
// Handle and echo messages continuously
38-
go func() {
39-
for {
40-
_, msg, readMsgRead := conn.ReadMessage()
41-
if readMsgRead != nil {
42-
logger.Error().Err(readMsgRead).Msg("Read error")
43-
return
44-
}
45-
writeMsgErr := conn.WriteMessage(ws.TextMessage, msg)
46-
if writeMsgErr != nil {
47-
logger.Error().Err(writeMsgErr).Msg("Write error")
48-
return
49-
}
50-
}
51-
}()
52-
})
53-
54-
go http.ListenAndServe(":8080", nil)
21+
u := tests_functions.StartServer(logger, "message")
5522

5623
// Set up the client
5724
c, _, err := ws.DefaultDialer.Dial(u.String(), nil)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package tests_functions
2+
3+
import (
4+
"fmt"
5+
ws "github.com/gorilla/websocket"
6+
"github.com/rs/zerolog"
7+
"net/http"
8+
"net/url"
9+
)
10+
11+
func StartServer(logger zerolog.Logger, name string) url.URL {
12+
u := url.URL{Scheme: "ws", Host: "localhost:8080", Path: fmt.Sprintf("/%s", name)}
13+
14+
// Start HTTP server with WebSocket upgrade and echo back
15+
http.HandleFunc(fmt.Sprintf("/%s", name), func(writer http.ResponseWriter, request *http.Request) {
16+
upgrader := ws.Upgrader{
17+
CheckOrigin: func(r *http.Request) bool { return true },
18+
}
19+
conn, upgradeErr := upgrader.Upgrade(writer, request, nil)
20+
if upgradeErr != nil {
21+
logger.Error().Err(upgradeErr).Msg("Failed to upgrade")
22+
return
23+
}
24+
defer conn.Close()
25+
defer logger.Info().Str("id", "server").Msg("Connection closed")
26+
27+
// Handle and echo messages continuously
28+
go func() {
29+
for {
30+
_, msg, readMsgRead := conn.ReadMessage()
31+
if readMsgRead != nil {
32+
logger.Error().Err(readMsgRead).Msg("Read error")
33+
return
34+
}
35+
writeMsgErr := conn.WriteMessage(ws.TextMessage, msg)
36+
if writeMsgErr != nil {
37+
logger.Error().Err(writeMsgErr).Msg("Write error")
38+
return
39+
}
40+
}
41+
}()
42+
})
43+
44+
go http.ListenAndServe(":8080", nil)
45+
46+
return u
47+
}

0 commit comments

Comments
 (0)