Skip to content

Commit

Permalink
update test
Browse files Browse the repository at this point in the history
  • Loading branch information
pmuir committed Jan 12, 2010
1 parent 6b80762 commit 588c4e2
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 16 deletions.
Expand Up @@ -2,16 +2,10 @@

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Field;

import javax.enterprise.inject.spi.Bean;

import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.weld.conversation.AbstractConversationManager;
import org.jboss.weld.conversation.ConversationManager;
import org.jboss.weld.test.AbstractWeldTest;
import org.testng.annotations.Test;

Expand All @@ -21,16 +15,12 @@ public class SerializationTest extends AbstractWeldTest
@SuppressWarnings("unchecked")
@Test(description="WELD-363", groups = "broken")
public void testConversationManagerSerializable()
throws IOException, ClassNotFoundException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException
throws Exception
{
Bean<ConversationManager> cmBean = (Bean<ConversationManager>) getCurrentManager()
.getBeans(ConversationManager.class).iterator().next();

ConversationManager cMgr = cmBean.create(getCurrentManager().createCreationalContext(cmBean));
TestConversationManager cMgr = getCurrentManager().getInstanceByType(TestConversationManager.class);

Field ccField = AbstractConversationManager.class.getDeclaredField("currentConversation");
ccField.setAccessible(true);
assert ccField.get(cMgr) != null;
assert cMgr.getConversationInstance() != null;
assert cMgr.getConversationInstance().get() != null;

ByteArrayOutputStream serialized = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(serialized);
Expand All @@ -41,7 +31,9 @@ public void testConversationManagerSerializable()
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(serialized.toByteArray()));
Object deserialized = in.readObject();

assert deserialized instanceof ConversationManager;
assert ccField.get(deserialized) != null;
assert deserialized instanceof TestConversationManager;
TestConversationManager deserializedCMgr = (TestConversationManager) deserialized;
assert deserializedCMgr.getConversationInstance() != null;
assert deserializedCMgr.getConversationInstance().get() != null;
}
}
@@ -0,0 +1,26 @@
package org.jboss.weld.tests.serialization;

import java.lang.reflect.Field;

import javax.enterprise.inject.Instance;

import org.jboss.weld.conversation.AbstractConversationManager;
import org.jboss.weld.conversation.ConversationImpl;
import org.jboss.weld.conversation.ServletConversationManager;

public class TestConversationManager extends ServletConversationManager
{

/**
*
*/
private static final long serialVersionUID = 9081670661490776033L;

public Instance<ConversationImpl> getConversationInstance() throws Exception
{
Field ccField = AbstractConversationManager.class.getDeclaredField("currentConversation");
ccField.setAccessible(true);
return (Instance<ConversationImpl>) ccField.get(this);
}

}

0 comments on commit 588c4e2

Please sign in to comment.