CreateUpdateProcedureCommand cloned = (CreateUpdateProcedureCommand)s1.clone();
Class clazz = CreateUpdateProcedureCommand.class;
Class superClazz = Command.class;
Field field = null;
//Command class state
field = superClazz.getDeclaredField("tempGroupIDs"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
field = superClazz.getDeclaredField("externalGroups"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
field = superClazz.getDeclaredField("isResolved"); //$NON-NLS-1$
field.setAccessible( true );
assertTrue(((Boolean)field.get(cloned)).booleanValue());
field = superClazz.getDeclaredField("option"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
//CreateUpdateProcedure class state
field = clazz.getDeclaredField("block"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
field = clazz.getDeclaredField("symbolMap"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
field = clazz.getDeclaredField("isUpdateProcedure"); //$NON-NLS-1$
field.setAccessible( true );
assertTrue(((Boolean)field.get(cloned)).booleanValue());
field = clazz.getDeclaredField("projectedSymbols"); //$NON-NLS-1$
field.setAccessible( true );
assertNotNull(field.get(cloned));
}