Files
go-cart-actor/message-handler_test.go
2024-11-11 13:22:28 +01:00

130 lines
2.8 KiB
Go

package main
import (
"bytes"
"testing"
messages "git.tornberg.me/go-cart-actor/proto"
)
func TestAddRequest(t *testing.T) {
h, err := GetMessageHandler(AddRequestType)
if err != nil {
t.Errorf("Error getting message handler: %v\n", err)
}
if h == nil {
t.Errorf("Expected message handler, got nil\n")
}
message := Message{
Type: AddRequestType,
Content: &messages.AddRequest{
Quantity: 2,
Sku: "123",
},
}
var b bytes.Buffer
err = h.Write(&message, &b)
if err != nil {
t.Errorf("Error writing message: %v\n", err)
}
result, err := h.Read(b.Bytes())
if err != nil {
t.Errorf("Error reading message: %v\n", err)
}
if result == nil {
t.Errorf("Expected result, got nil\n")
}
r, ok := result.(*messages.AddRequest)
if !ok {
t.Errorf("Expected AddRequest, got %T\n", result)
}
if r.Quantity != 2 {
t.Errorf("Expected quantity 2, got %d\n", r.Quantity)
}
if r.Sku != "123" {
t.Errorf("Expected sku '123', got %s\n", r.Sku)
}
}
func TestItemRequest(t *testing.T) {
h, err := GetMessageHandler(AddItemType)
if err != nil {
t.Errorf("Error getting message handler: %v\n", err)
}
if h == nil {
t.Errorf("Expected message handler, got nil\n")
}
message := Message{
Type: AddItemType,
Content: &messages.AddItem{
Quantity: 2,
Sku: "123",
Price: 100,
Name: "Test item",
Image: "test.jpg",
},
}
var b bytes.Buffer
err = h.Write(&message, &b)
if err != nil {
t.Errorf("Error writing message: %v\n", err)
}
result, err := h.Read(b.Bytes())
if err != nil {
t.Errorf("Error reading message: %v\n", err)
}
if result == nil {
t.Errorf("Expected result, got nil\n")
}
var r *messages.AddItem
ok := h.Is(&message)
if !ok {
t.Errorf("Expected AddRequest, got %T\n", result)
}
if r.Quantity != 2 {
t.Errorf("Expected quantity 2, got %d\n", r.Quantity)
}
if r.Sku != "123" {
t.Errorf("Expected sku '123', got %s\n", r.Sku)
}
}
func TestSetDeliveryMssage(t *testing.T) {
h, err := GetMessageHandler(SetDeliveryType)
if err != nil {
t.Errorf("Error getting message handler: %v\n", err)
}
if h == nil {
t.Errorf("Expected message handler, got nil\n")
}
message := Message{
Type: SetDeliveryType,
Content: &messages.SetDelivery{
Provider: "test",
Items: []int64{1, 2},
},
}
var b bytes.Buffer
err = h.Write(&message, &b)
if err != nil {
t.Errorf("Error writing message: %v\n", err)
}
result, err := h.Read(b.Bytes())
if err != nil {
t.Errorf("Error reading message: %v\n", err)
}
if result == nil {
t.Errorf("Expected result, got nil\n")
}
r, ok := result.(*messages.SetDelivery)
if !ok {
t.Errorf("Expected AddRequest, got %T\n", result)
}
if len(r.Items) != 2 {
t.Errorf("Expected 2 items, got %d\n", len(r.Items))
}
if r.Provider != "test" {
t.Errorf("Expected provider 'test', got %s\n", r.Provider)
}
}