cml04-eventer/marshal_test.go

57 lines
1.6 KiB
Go

package cml04eventer
import (
"testing"
"github.com/nsqio/go-nsq"
"github.com/stretchr/testify/assert"
)
func TestJSONMarshaler_MarshalUnmarshal(t *testing.T) {
// Crear una instancia de JSONMarshaler
marshaler := JSONMarshaler{}
// Crear un evento para probar la serialización
eventSender := "test-sender"
eventTopic := "test-topic"
eventMeta := MetaData{"key": "value"}
eventData := []byte("test-data")
event := NewEvent(eventSender, eventTopic, eventMeta, eventData)
// Serializar el evento utilizando el Marshaler
serialized, err := marshaler.Marshal(eventTopic, event)
assert.NoError(t, err)
// Deserializar el mensaje serializado
nsqMsg := &nsq.Message{Body: serialized}
decodedEvent, err := marshaler.Unmarshal(nsqMsg)
assert.NoError(t, err)
// Comparar el evento original con el evento deserializado
assert.Equal(t, event, decodedEvent)
}
func TestGobMarshaler_MarshalUnmarshal(t *testing.T) {
// Crear una instancia de GobMarshaler
marshaler := GobMarshaler{}
// Crear un evento para probar la serialización
eventSender := "test-sender"
eventTopic := "test-topic"
eventMeta := MetaData{"key": "value"}
eventData := []byte("test-data")
event := NewEvent(eventSender, eventTopic, eventMeta, eventData)
// Serializar el evento utilizando el Marshaler
serialized, err := marshaler.Marshal(eventTopic, event)
assert.NoError(t, err)
// Deserializar el mensaje serializado
nsqMsg := &nsq.Message{Body: serialized}
decodedEvent, err := marshaler.Unmarshal(nsqMsg)
assert.NoError(t, err)
// Comparar el evento original con el evento deserializado
assert.Equal(t, event, decodedEvent)
}