package org.zendesk.client.v2.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.zendesk.client.v2.model.events.AgentMacroReferenceEvent; import org.zendesk.client.v2.model.events.AttachmentRedactionEvent; import org.zendesk.client.v2.model.events.CommentRedactionEvent; import org.zendesk.client.v2.model.events.Event; import org.zendesk.client.v2.model.events.OrganizationActivityEvent; import org.zendesk.client.v2.model.events.UnknownEvent; import com.fasterxml.jackson.databind.ObjectMapper; public class EventTest { private Event parseJson( byte[] json ) { ObjectMapper mapper = new ObjectMapper(); try { return mapper.readValue( json, Event.class ); } catch ( Exception e ) { System.out.println( e ); return null; } } @Test public void testOrganizationActivityEvent() { String json = "{ \"id\": 21337631753, \"type\": \"OrganizationActivity\", \"subject\": \"Custom Subject\", \"body\": \"This is sample data\", \"recipients\": [568628833] }"; Event ev = parseJson( json.getBytes() ); assertNotNull( ev ); assertEquals( OrganizationActivityEvent.class, ev.getClass() ); assertEquals( new Long(21337631753L), ev.getId() ); assertEquals( "Custom Subject", ((OrganizationActivityEvent) ev).getSubject() ); assertEquals( "This is sample data", ((OrganizationActivityEvent) ev).getBody() ); assertNotNull( ((OrganizationActivityEvent) ev).getRecipients() ); assertEquals( 1, ((OrganizationActivityEvent) ev).getRecipients().size() ); assertEquals( new Long(568628833L), ((OrganizationActivityEvent) ev).getRecipients().get(0) ); assertEquals( "OrganizationActivityEvent{subject=Custom Subject, body=This is sample data, recipients=[568628833], via=null}", ev.toString() ); } @Test public void testAttachmentRedactionEvent() { String json = "{ \"id\": 10593649089, \"type\": \"AttachmentRedactionEvent\", \"attachment_id\": 315988189, \"comment_id\": 10591294149 }"; Event ev = parseJson( json.getBytes() ); assertNotNull( ev ); assertEquals( AttachmentRedactionEvent.class, ev.getClass() ); assertEquals( new Long(10593649089L), ev.getId() ); assertEquals( new Long(315988189L), ((AttachmentRedactionEvent) ev).getAttachmentId() ); assertEquals( new Long(10591294149L), ((AttachmentRedactionEvent) ev).getCommentId() ); assertEquals( "AttachmentRedactionEvent{attachmentId=315988189, commentId=10591294149}", ev.toString() ); } @Test public void testCommentRedactionEvent() { String json = "{ \"id\": 18231937759, \"type\": \"CommentRedactionEvent\", \"comment_id\": \"18974155255\" }"; Event ev = parseJson( json.getBytes() ); assertNotNull( ev ); assertEquals( CommentRedactionEvent.class, ev.getClass() ); assertEquals( new Long(18231937759L), ev.getId() ); assertEquals( new Long(18974155255L), ((CommentRedactionEvent) ev).getCommentId() ); assertEquals( "CommentRedactionEvent{commentId=18974155255}", ev.toString() ); } @Test public void testAgentMacroReferenceEvent() { String json = "{ \"id\": 789, \"type\": \"AgentMacroReference\", \"via\": { \"channel\": \"web\", \"source\": {" + "\"from\": {}, \"to\": {}, \"rel\": null } }, \"macro_title\": \"TheMacroTitle\", \"macro_id\": \"123\" }"; Event ev = parseJson( json.getBytes() ); assertNotNull(ev); assertEquals(AgentMacroReferenceEvent.class, ev.getClass()); assertEquals(new Long(789L), ev.getId()); assertEquals(new Long(123L), ((AgentMacroReferenceEvent) ev).getMacroId()); assertEquals("TheMacroTitle", ((AgentMacroReferenceEvent) ev).getMacroTitle()); assertNotNull(((AgentMacroReferenceEvent) ev).getVia()); } @Test public void testUnknownEvent() { String json = "{ \"id\": 123, \"type\": \"NotARealEventType\" }"; Event ev = parseJson(json.getBytes()); assertNotNull(ev); assertEquals(UnknownEvent.class, ev.getClass()); assertEquals("NotARealEventType", ((UnknownEvent) ev).getType()); assertTrue(ev.toString().contains("NotARealEventType")); } }