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) }