@Test
public void differentInstancesShouldHaveEqualHashCodesAndBeEqual()
{
KernelExtensionFactory<?> one = newInstance();
KernelExtensionFactory<?> two = newInstance();
assertEquals( "new instances have different hash codes", one.hashCode(), two.hashCode() );
assertEquals( "new instances are not equals", one, two );
one = loadInstance();
two = loadInstance();
assertEquals( "loaded instances have different hash codes", one.hashCode(), two.hashCode() );
assertEquals( "loaded instances are not equals", one, two );
one = loadInstance();
two = newInstance();
assertEquals( "loaded instance and new instance have different hash codes", one.hashCode(), two.hashCode() );
assertEquals( "loaded instance and new instance are not equals", one, two );
}