Skip to content

Commit

Permalink
HSEARCH-2481 Make sure SerializationTestHelper test is executed
Browse files Browse the repository at this point in the history
It used not to be executed in the -engine module, because the test
class didn't end with "Test".
  • Loading branch information
yrodiere committed Jun 1, 2017
1 parent a6ce4ea commit b1166e2
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,19 @@
*/
package org.hibernate.search.testsupport.serialization;

import static org.junit.Assert.assertEquals;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.search.testsupport.serialization.SerializationTestHelper.Foo.TestInnerClass;
import org.junit.Test;

/**
* @author Sanne Grinovero
*/
public class SerializationTestHelper {
public final class SerializationTestHelper {

private SerializationTestHelper() {
// Do not instantiate this class
}

/**
* Duplicates an object using Serialization, it moves
Expand All @@ -49,72 +45,4 @@ public static <T> T duplicateBySerialization(T o) throws IOException, ClassNotFo
return copy;
}

@Test
public void testSelf() throws IOException, ClassNotFoundException {
Foo a = new Foo();
a.list.add( new TestInnerClass( 30 ) );
Foo b = (Foo) duplicateBySerialization( a );
assertEquals( Integer.valueOf( 6 ), a.integer );
assertEquals( Integer.valueOf( 7 ), b.integer );
assertEquals( a.list, b.list );
}

static class Foo implements Serializable {

List<TestInnerClass> list = new ArrayList<TestInnerClass>();
transient Integer integer = Integer.valueOf( 6 );

static class TestInnerClass implements Serializable {
private final int v;

public TestInnerClass(int i) {
v = i;
}

public void print() {
System.out.println( v );
}

@Override
public String toString() {
return "" + v;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + v;
return result;
}

@Override
public boolean equals(Object obj) {
if ( this == obj ) {
return true;
}
if ( obj == null ) {
return false;
}
if ( getClass() != obj.getClass() ) {
return false;
}
final TestInnerClass other = (TestInnerClass) obj;
if ( v != other.v ) {
return false;
}
return true;
}
}

private void readObject(ObjectInputStream aInputStream) throws ClassNotFoundException, IOException {
aInputStream.defaultReadObject();
integer = Integer.valueOf( 7 );
}

private void writeObject(ObjectOutputStream aOutputStream) throws IOException {
aOutputStream.defaultWriteObject();
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.testsupport.serialization;

import static org.junit.Assert.assertEquals;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.search.testsupport.serialization.SerializationTestHelperTest.Foo.TestInnerClass;
import org.junit.Test;

/**
* @author Sanne Grinovero
*/
public class SerializationTestHelperTest {

@Test
public void duplicatesAreEqual() throws IOException, ClassNotFoundException {
Foo a = new Foo();
a.list.add( new TestInnerClass( 30 ) );
Foo b = (Foo) SerializationTestHelper.duplicateBySerialization( a );
assertEquals( Integer.valueOf( 6 ), a.integer );
assertEquals( Integer.valueOf( 7 ), b.integer );
assertEquals( a.list, b.list );
}

static class Foo implements Serializable {

List<TestInnerClass> list = new ArrayList<TestInnerClass>();
transient Integer integer = Integer.valueOf( 6 );

static class TestInnerClass implements Serializable {
private final int v;

public TestInnerClass(int i) {
v = i;
}

public void print() {
System.out.println( v );
}

@Override
public String toString() {
return "" + v;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + v;
return result;
}

@Override
public boolean equals(Object obj) {
if ( this == obj ) {
return true;
}
if ( obj == null ) {
return false;
}
if ( getClass() != obj.getClass() ) {
return false;
}
final TestInnerClass other = (TestInnerClass) obj;
if ( v != other.v ) {
return false;
}
return true;
}
}

private void readObject(ObjectInputStream aInputStream) throws ClassNotFoundException, IOException {
aInputStream.defaultReadObject();
integer = Integer.valueOf( 7 );
}

private void writeObject(ObjectOutputStream aOutputStream) throws IOException {
aOutputStream.defaultWriteObject();
}
}

}

0 comments on commit b1166e2

Please sign in to comment.