@Test public void testEventSerializationRestart() throws Exception { // Create and register artifacts CoreEvent event = createEventToSerialize(); // Serialize Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(event); assertNotNull(serialized); // Simulate mule cold restart muleContext.dispose(); muleContext = createMuleContext(); muleContext.start(); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); // Recreate and register artifacts (this would happen if using any kind of static config e.g. XML) createAndRegisterTransformersEndpointBuilderService(); // Deserialize PrivilegedEvent deserialized = (PrivilegedEvent) trans.transform(serialized); // Assert that deserialized event is not null assertNotNull(deserialized); // Assert that deserialized event has session with same id assertNotNull(deserialized.getSession()); }
@Test public void testFlowVarNamesAddImmutable() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("test", "val") .build(); expectedException.expect(UnsupportedOperationException.class); event.getVariables().keySet().add("other"); }
@Test public void serialization() throws Exception { Transformer transformer = createSerializableToByteArrayTransformer(); transformer.setMuleContext(muleContext); Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(testEvent()); assertNotNull(serialized); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); PrivilegedEvent deserialized = (PrivilegedEvent) trans.transform(serialized); // Assert that deserialized event is not null assertNotNull(deserialized); // Assert that deserialized event has session with same id assertNotNull(deserialized.getSession()); }
private CoreEvent createEventToSerialize() throws Exception { createAndRegisterTransformersEndpointBuilderService(); return testEvent(); }
@Test public void securityContextSerialization() throws Exception { Transformer transformer = createSerializableToByteArrayTransformer(); transformer.setMuleContext(muleContext); CoreEvent event = CoreEvent.builder(testEvent()).securityContext(createTestAuthentication()).build(); Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(event); assertNotNull(serialized); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); CoreEvent deserialized = (CoreEvent) trans.transform(serialized); assertThat(deserialized.getSecurityContext().getAuthentication().getPrincipal(), is(event.getSecurityContext().getAuthentication().getPrincipal())); assertThat(deserialized.getSecurityContext().getAuthentication().getProperties().get("key1"), is(event.getSecurityContext().getAuthentication().getProperties().get("key1"))); assertThat(deserialized.getSecurityContext().getAuthentication().getCredentials(), is(event.getSecurityContext().getAuthentication().getCredentials())); }
@Test public void securityContextCopy() throws Exception { SecurityContext securityContext = mock(SecurityContext.class); CoreEvent event = CoreEvent.builder(testEvent()).securityContext(securityContext).build(); CoreEvent eventCopy = CoreEvent.builder(event).message(Message.of("copy")).build(); assertThat(securityContext, sameInstance(eventCopy.getSecurityContext())); }
@Test public void securityContextSerialization() throws Exception { Transformer transformer = createSerializableToByteArrayTransformer(); transformer.setMuleContext(muleContext); CoreEvent event = CoreEvent.builder(testEvent()).securityContext(createTestAuthentication()).build(); Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(event); assertNotNull(serialized); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); CoreEvent deserialized = (CoreEvent) trans.transform(serialized); assertThat(deserialized.getSecurityContext().getAuthentication().getPrincipal(), is(event.getSecurityContext().getAuthentication().getPrincipal())); assertThat(deserialized.getSecurityContext().getAuthentication().getProperties().get("key1"), is(event.getSecurityContext().getAuthentication().getProperties().get("key1"))); assertThat(deserialized.getSecurityContext().getAuthentication().getCredentials(), is(event.getSecurityContext().getAuthentication().getCredentials())); }
private CoreEvent createEventToSerialize() throws Exception { createAndRegisterTransformersEndpointBuilderService(); return testEvent(); }
@Test public void securityContextCopy() throws Exception { SecurityContext securityContext = mock(SecurityContext.class); CoreEvent event = CoreEvent.builder(testEvent()).securityContext(securityContext).build(); CoreEvent eventCopy = CoreEvent.builder(event).message(Message.of("copy")).build(); assertThat(securityContext, sameInstance(eventCopy.getSecurityContext())); }
@Test public void testEventSerializationRestart() throws Exception { // Create and register artifacts CoreEvent event = createEventToSerialize(); // Serialize Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(event); assertNotNull(serialized); // Simulate mule cold restart muleContext.dispose(); muleContext = createMuleContext(); muleContext.start(); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); // Recreate and register artifacts (this would happen if using any kind of static config e.g. XML) createAndRegisterTransformersEndpointBuilderService(); // Deserialize PrivilegedEvent deserialized = (PrivilegedEvent) trans.transform(serialized); // Assert that deserialized event is not null assertNotNull(deserialized); // Assert that deserialized event has session with same id assertNotNull(deserialized.getSession()); }
@Test public void testMuleEventSerializationWithRawPayload() throws Exception { StringBuilder payload = new StringBuilder(); // to reproduce issue we must try to serialize something with a payload bigger than 1020 bytes for (int i = 0; i < 108; i++) { payload.append("1234567890"); } PrivilegedEvent testEvent = this.<PrivilegedEvent.Builder>getEventBuilder() .message(of(new ByteArrayInputStream(payload.toString().getBytes()))).build(); currentMuleContext.set(muleContext); byte[] serializedEvent = muleContext.getObjectSerializer().getExternalProtocol().serialize(testEvent); testEvent = muleContext.getObjectSerializer().getExternalProtocol().deserialize(serializedEvent); assertArrayEquals((byte[]) testEvent.getMessage().getPayload().getValue(), payload.toString().getBytes()); }
@Test public void serialization() throws Exception { Transformer transformer = createSerializableToByteArrayTransformer(); transformer.setMuleContext(muleContext); Serializable serialized = (Serializable) createSerializableToByteArrayTransformer().transform(testEvent()); assertNotNull(serialized); ByteArrayToObject trans = new ByteArrayToObject(); trans.setMuleContext(muleContext); PrivilegedEvent deserialized = (PrivilegedEvent) trans.transform(serialized); // Assert that deserialized event is not null assertNotNull(deserialized); // Assert that deserialized event has session with same id assertNotNull(deserialized.getSession()); }
@Test public void testFlowVarNamesRemoveImmutable() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("test", "val") .build(); event = CoreEvent.builder(event).addVariable("test", "val").build(); expectedException.expect(UnsupportedOperationException.class); event.getVariables().keySet().remove("test"); }
@Test public void testFlowVarsNotShared() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("foo", "bar") .build(); event = CoreEvent.builder(event).addVariable("foo", "bar").build(); CoreEvent copy = CoreEvent.builder(event).build(); copy = CoreEvent.builder(copy).addVariable("foo", "bar2").build(); assertEquals("bar", event.getVariables().get("foo").getValue()); assertEquals("bar2", copy.getVariables().get("foo").getValue()); }
@Test public void testMuleEventSerializationWithRawPayload() throws Exception { StringBuilder payload = new StringBuilder(); // to reproduce issue we must try to serialize something with a payload bigger than 1020 bytes for (int i = 0; i < 108; i++) { payload.append("1234567890"); } PrivilegedEvent testEvent = this.<PrivilegedEvent.Builder>getEventBuilder() .message(of(new ByteArrayInputStream(payload.toString().getBytes()))).build(); currentMuleContext.set(muleContext); byte[] serializedEvent = muleContext.getObjectSerializer().getExternalProtocol().serialize(testEvent); testEvent = muleContext.getObjectSerializer().getExternalProtocol().deserialize(serializedEvent); assertArrayEquals((byte[]) testEvent.getMessage().getPayload().getValue(), payload.toString().getBytes()); }
@Test public void testFlowVarNamesAddImmutable() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("test", "val") .build(); expectedException.expect(UnsupportedOperationException.class); event.getVariables().keySet().add("other"); }
@Test public void testFlowVarNamesRemoveImmutable() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("test", "val") .build(); event = CoreEvent.builder(event).addVariable("test", "val").build(); expectedException.expect(UnsupportedOperationException.class); event.getVariables().keySet().remove("test"); }
@Test public void testFlowVarsNotShared() throws Exception { CoreEvent event = getEventBuilder() .message(of("whatever")) .addVariable("foo", "bar") .build(); event = CoreEvent.builder(event).addVariable("foo", "bar").build(); CoreEvent copy = CoreEvent.builder(event).build(); copy = CoreEvent.builder(copy).addVariable("foo", "bar2").build(); assertEquals("bar", event.getVariables().get("foo").getValue()); assertEquals("bar2", copy.getVariables().get("foo").getValue()); }