130 lines
2.8 KiB
Go
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)
|
|
}
|
|
}
|