blob: 95b0a0bf24436abf6ff4967ed5124a52c020dfaa [file] [log] [blame]
/*
* Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Steve Monnier - initial API and implementation
* Eike Stepper - adapted for more correct test model definition
* Christian W. Damus (CEA) - adapted for new test model with unsettable attribute
*/
package org.eclipse.emf.cdo.tests.bugzilla;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.tests.model6.EmptyStringDefaultUnsettable;
import org.eclipse.emf.cdo.tests.model6.UnsettableAttributes;
import org.eclipse.emf.cdo.tests.model6.legacy.Model6Factory;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Date;
/**
* Bug 405191.
*
* @author Steve Monnier
*/
public class Bugzilla_405191_Test extends AbstractCDOTest
{
/**
* This scenario validates that null can be set on a String feature with an empty string has default value has.
*/
public void testSetNonDefaultNullString() throws Exception
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/res"));
// Create an object and set is a string attribute to the empty string
EmptyStringDefaultUnsettable localObject = getModel6Factory().createEmptyStringDefaultUnsettable();
localObject.setAttribute("");
resource.getContents().add(localObject);
transaction.commit();
CDOTransaction remoteTransaction = openSession().openTransaction();
EmptyStringDefaultUnsettable remoteObject = remoteTransaction.getObject(localObject);
// Validate that for another user (another transaction) the value is an empty string
assertNotNull("Attribute should not be null", remoteObject.getAttribute());
// Change attribute value from empty string to null
assertNotNull("Attribute should not be be null", localObject.getAttribute());
localObject.setAttribute(null);
assertNull("Attribute should be null", localObject.getAttribute());
// Validate that for another user (another transaction) the value is null
commitAndSync(transaction, remoteTransaction);
assertNull(remoteObject.getAttribute());
}
public void testAllTypesSetAndUnset() throws Exception
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/res"));
// Create an object and set all attributes to non-default values
UnsettableAttributes localObject = getModel6Factory().createUnsettableAttributes();
localObject.setAttrBigDecimal(new BigDecimal("4711.1234"));
localObject.setAttrBigInteger(new BigInteger("4711"));
localObject.setAttrBoolean(true);
localObject.setAttrBooleanObject(true);
localObject.setAttrByte((byte)47);
localObject.setAttrByteObject((byte)47);
localObject.setAttrByteArray(new byte[] { 4, 7, 1, 1 });
localObject.setAttrChar('4');
localObject.setAttrCharacterObject('4');
localObject.setAttrDate(new Date(4711));
localObject.setAttrDouble(4711.1234);
localObject.setAttrDoubleObject(4711.1234);
localObject.setAttrFloat(4711.1234f);
localObject.setAttrFloatObject(4711.1234f);
localObject.setAttrInt(4711);
localObject.setAttrIntegerObject(4711);
localObject.setAttrJavaClass(getClass());
localObject.setAttrJavaObject(new int[] { 4, 7, 1, 1 });
localObject.setAttrLong(4711L);
localObject.setAttrLongObject(4711L);
localObject.setAttrShort((short)4711);
localObject.setAttrShortObject((short)4711);
localObject.setAttrString("4711");
resource.getContents().add(localObject);
transaction.commit();
CDOTransaction remoteTransaction = openSession().openTransaction();
UnsettableAttributes remoteObject = remoteTransaction.getObject(localObject);
assertEquals(localObject.getAttrBigDecimal(), remoteObject.getAttrBigDecimal());
assertEquals(localObject.getAttrBigInteger(), remoteObject.getAttrBigInteger());
assertEquals(localObject.isAttrBoolean(), remoteObject.isAttrBoolean());
assertEquals(localObject.getAttrBooleanObject(), remoteObject.getAttrBooleanObject());
assertEquals(localObject.getAttrByte(), remoteObject.getAttrByte());
assertEquals(localObject.getAttrByteObject(), remoteObject.getAttrByteObject());
assertEquals(true, Arrays.equals(localObject.getAttrByteArray(), remoteObject.getAttrByteArray()));
assertEquals(localObject.getAttrChar(), remoteObject.getAttrChar());
assertEquals(localObject.getAttrCharacterObject(), remoteObject.getAttrCharacterObject());
assertEquals(localObject.getAttrDate(), remoteObject.getAttrDate());
assertEquals(localObject.getAttrDouble(), remoteObject.getAttrDouble());
assertEquals(localObject.getAttrDoubleObject(), remoteObject.getAttrDoubleObject());
assertEquals(localObject.getAttrFloat(), remoteObject.getAttrFloat());
assertEquals(localObject.getAttrFloatObject(), remoteObject.getAttrFloatObject());
assertEquals(localObject.getAttrInt(), remoteObject.getAttrInt());
assertEquals(localObject.getAttrIntegerObject(), remoteObject.getAttrIntegerObject());
assertEquals(localObject.getAttrJavaClass(), remoteObject.getAttrJavaClass());
assertEquals(true, Arrays.equals((int[])localObject.getAttrJavaObject(), (int[])remoteObject.getAttrJavaObject()));
assertEquals(localObject.getAttrLong(), remoteObject.getAttrLong());
assertEquals(localObject.getAttrLongObject(), remoteObject.getAttrLongObject());
assertEquals(localObject.getAttrShort(), remoteObject.getAttrShort());
assertEquals(localObject.getAttrShortObject(), remoteObject.getAttrShortObject());
assertEquals(localObject.getAttrString(), remoteObject.getAttrString());
assertEquals(localObject.isSetAttrBigDecimal(), remoteObject.isSetAttrBigDecimal());
assertEquals(localObject.isSetAttrBigInteger(), remoteObject.isSetAttrBigInteger());
assertEquals(localObject.isSetAttrBoolean(), remoteObject.isSetAttrBoolean());
assertEquals(localObject.isSetAttrBooleanObject(), remoteObject.isSetAttrBooleanObject());
assertEquals(localObject.isSetAttrByte(), remoteObject.isSetAttrByte());
assertEquals(localObject.isSetAttrByteObject(), remoteObject.isSetAttrByteObject());
assertEquals(localObject.isSetAttrByteArray(), remoteObject.isSetAttrByteArray());
assertEquals(localObject.isSetAttrChar(), remoteObject.isSetAttrChar());
assertEquals(localObject.isSetAttrCharacterObject(), remoteObject.isSetAttrCharacterObject());
assertEquals(localObject.isSetAttrDate(), remoteObject.isSetAttrDate());
assertEquals(localObject.isSetAttrDouble(), remoteObject.isSetAttrDouble());
assertEquals(localObject.isSetAttrDoubleObject(), remoteObject.isSetAttrDoubleObject());
assertEquals(localObject.isSetAttrFloat(), remoteObject.isSetAttrFloat());
assertEquals(localObject.isSetAttrFloatObject(), remoteObject.isSetAttrFloatObject());
assertEquals(localObject.isSetAttrInt(), remoteObject.isSetAttrInt());
assertEquals(localObject.isSetAttrIntegerObject(), remoteObject.isSetAttrIntegerObject());
assertEquals(localObject.isSetAttrJavaClass(), remoteObject.isSetAttrJavaClass());
assertEquals(localObject.isSetAttrJavaObject(), remoteObject.isSetAttrJavaObject());
assertEquals(localObject.isSetAttrLong(), remoteObject.isSetAttrLong());
assertEquals(localObject.isSetAttrLongObject(), remoteObject.isSetAttrLongObject());
assertEquals(localObject.isSetAttrShort(), remoteObject.isSetAttrShort());
assertEquals(localObject.isSetAttrShortObject(), remoteObject.isSetAttrShortObject());
assertEquals(localObject.isSetAttrString(), remoteObject.isSetAttrString());
assertEquals(true, remoteObject.isSetAttrBigDecimal());
assertEquals(true, remoteObject.isSetAttrBigInteger());
assertEquals(true, remoteObject.isSetAttrBoolean());
assertEquals(true, remoteObject.isSetAttrBooleanObject());
assertEquals(true, remoteObject.isSetAttrByte());
assertEquals(true, remoteObject.isSetAttrByteObject());
assertEquals(true, remoteObject.isSetAttrByteArray());
assertEquals(true, remoteObject.isSetAttrChar());
assertEquals(true, remoteObject.isSetAttrCharacterObject());
assertEquals(true, remoteObject.isSetAttrDate());
assertEquals(true, remoteObject.isSetAttrDouble());
assertEquals(true, remoteObject.isSetAttrDoubleObject());
assertEquals(true, remoteObject.isSetAttrFloat());
assertEquals(true, remoteObject.isSetAttrFloatObject());
assertEquals(true, remoteObject.isSetAttrInt());
assertEquals(true, remoteObject.isSetAttrIntegerObject());
assertEquals(true, remoteObject.isSetAttrJavaClass());
assertEquals(true, remoteObject.isSetAttrJavaObject());
assertEquals(true, remoteObject.isSetAttrLong());
assertEquals(true, remoteObject.isSetAttrLongObject());
assertEquals(true, remoteObject.isSetAttrShort());
assertEquals(true, remoteObject.isSetAttrShortObject());
assertEquals(true, remoteObject.isSetAttrString());
// Unset all attributes
localObject.unsetAttrBigDecimal();
localObject.unsetAttrBigInteger();
localObject.unsetAttrBoolean();
localObject.unsetAttrBooleanObject();
localObject.unsetAttrByte();
localObject.unsetAttrByteObject();
localObject.unsetAttrByteArray();
localObject.unsetAttrChar();
localObject.unsetAttrCharacterObject();
localObject.unsetAttrDate();
localObject.unsetAttrDouble();
localObject.unsetAttrDoubleObject();
localObject.unsetAttrFloat();
localObject.unsetAttrFloatObject();
localObject.unsetAttrInt();
localObject.unsetAttrIntegerObject();
localObject.unsetAttrJavaClass();
localObject.unsetAttrJavaObject();
localObject.unsetAttrLong();
localObject.unsetAttrLongObject();
localObject.unsetAttrShort();
localObject.unsetAttrShortObject();
localObject.unsetAttrString();
commitAndSync(transaction, remoteTransaction);
assertEquals(localObject.getAttrBigDecimal(), remoteObject.getAttrBigDecimal());
assertEquals(localObject.getAttrBigInteger(), remoteObject.getAttrBigInteger());
assertEquals(localObject.isAttrBoolean(), remoteObject.isAttrBoolean());
assertEquals(localObject.getAttrBooleanObject(), remoteObject.getAttrBooleanObject());
assertEquals(localObject.getAttrByte(), remoteObject.getAttrByte());
assertEquals(localObject.getAttrByteObject(), remoteObject.getAttrByteObject());
assertEquals(true, Arrays.equals(localObject.getAttrByteArray(), remoteObject.getAttrByteArray()));
assertEquals(localObject.getAttrChar(), remoteObject.getAttrChar());
assertEquals(localObject.getAttrCharacterObject(), remoteObject.getAttrCharacterObject());
assertEquals(localObject.getAttrDate(), remoteObject.getAttrDate());
assertEquals(localObject.getAttrDouble(), remoteObject.getAttrDouble());
assertEquals(localObject.getAttrDoubleObject(), remoteObject.getAttrDoubleObject());
assertEquals(localObject.getAttrFloat(), remoteObject.getAttrFloat());
assertEquals(localObject.getAttrFloatObject(), remoteObject.getAttrFloatObject());
assertEquals(localObject.getAttrInt(), remoteObject.getAttrInt());
assertEquals(localObject.getAttrIntegerObject(), remoteObject.getAttrIntegerObject());
assertEquals(localObject.getAttrJavaClass(), remoteObject.getAttrJavaClass());
assertEquals(true, Arrays.equals((int[])localObject.getAttrJavaObject(), (int[])remoteObject.getAttrJavaObject()));
assertEquals(localObject.getAttrLong(), remoteObject.getAttrLong());
assertEquals(localObject.getAttrLongObject(), remoteObject.getAttrLongObject());
assertEquals(localObject.getAttrShort(), remoteObject.getAttrShort());
assertEquals(localObject.getAttrShortObject(), remoteObject.getAttrShortObject());
assertEquals(localObject.getAttrString(), remoteObject.getAttrString());
assertEquals(localObject.isSetAttrBigDecimal(), remoteObject.isSetAttrBigDecimal());
assertEquals(localObject.isSetAttrBigInteger(), remoteObject.isSetAttrBigInteger());
assertEquals(localObject.isSetAttrBoolean(), remoteObject.isSetAttrBoolean());
assertEquals(localObject.isSetAttrBooleanObject(), remoteObject.isSetAttrBooleanObject());
assertEquals(localObject.isSetAttrByte(), remoteObject.isSetAttrByte());
assertEquals(localObject.isSetAttrByteObject(), remoteObject.isSetAttrByteObject());
assertEquals(localObject.isSetAttrByteArray(), remoteObject.isSetAttrByteArray());
assertEquals(localObject.isSetAttrChar(), remoteObject.isSetAttrChar());
assertEquals(localObject.isSetAttrCharacterObject(), remoteObject.isSetAttrCharacterObject());
assertEquals(localObject.isSetAttrDate(), remoteObject.isSetAttrDate());
assertEquals(localObject.isSetAttrDouble(), remoteObject.isSetAttrDouble());
assertEquals(localObject.isSetAttrDoubleObject(), remoteObject.isSetAttrDoubleObject());
assertEquals(localObject.isSetAttrFloat(), remoteObject.isSetAttrFloat());
assertEquals(localObject.isSetAttrFloatObject(), remoteObject.isSetAttrFloatObject());
assertEquals(localObject.isSetAttrInt(), remoteObject.isSetAttrInt());
assertEquals(localObject.isSetAttrIntegerObject(), remoteObject.isSetAttrIntegerObject());
assertEquals(localObject.isSetAttrJavaClass(), remoteObject.isSetAttrJavaClass());
assertEquals(localObject.isSetAttrJavaObject(), remoteObject.isSetAttrJavaObject());
assertEquals(localObject.isSetAttrLong(), remoteObject.isSetAttrLong());
assertEquals(localObject.isSetAttrLongObject(), remoteObject.isSetAttrLongObject());
assertEquals(localObject.isSetAttrShort(), remoteObject.isSetAttrShort());
assertEquals(localObject.isSetAttrShortObject(), remoteObject.isSetAttrShortObject());
assertEquals(localObject.isSetAttrString(), remoteObject.isSetAttrString());
}
public void testAllTypesSetAndDefault() throws Exception
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/res"));
// Create an object and set all attributes to non-default values
UnsettableAttributes localObject = getModel6Factory().createUnsettableAttributes();
localObject.setAttrBigDecimal(new BigDecimal("4711.1234"));
localObject.setAttrBigInteger(new BigInteger("4711"));
localObject.setAttrBoolean(true);
localObject.setAttrBooleanObject(true);
localObject.setAttrByte((byte)47);
localObject.setAttrByteObject((byte)47);
localObject.setAttrByteArray(new byte[] { 4, 7, 1, 1 });
localObject.setAttrChar('4');
localObject.setAttrCharacterObject('4');
localObject.setAttrDate(new Date(4711));
localObject.setAttrDouble(4711.1234);
localObject.setAttrDoubleObject(4711.1234);
localObject.setAttrFloat(4711.1234f);
localObject.setAttrFloatObject(4711.1234f);
localObject.setAttrInt(4711);
localObject.setAttrIntegerObject(4711);
localObject.setAttrJavaClass(getClass());
localObject.setAttrJavaObject(new int[] { 4, 7, 1, 1 });
localObject.setAttrLong(4711L);
localObject.setAttrLongObject(4711L);
localObject.setAttrShort((short)4711);
localObject.setAttrShortObject((short)4711);
localObject.setAttrString("4711");
resource.getContents().add(localObject);
transaction.commit();
CDOTransaction remoteTransaction = openSession().openTransaction();
UnsettableAttributes remoteObject = remoteTransaction.getObject(localObject);
assertEquals(localObject.getAttrBigDecimal(), remoteObject.getAttrBigDecimal());
assertEquals(localObject.getAttrBigInteger(), remoteObject.getAttrBigInteger());
assertEquals(localObject.isAttrBoolean(), remoteObject.isAttrBoolean());
assertEquals(localObject.getAttrBooleanObject(), remoteObject.getAttrBooleanObject());
assertEquals(localObject.getAttrByte(), remoteObject.getAttrByte());
assertEquals(localObject.getAttrByteObject(), remoteObject.getAttrByteObject());
assertEquals(true, Arrays.equals(localObject.getAttrByteArray(), remoteObject.getAttrByteArray()));
assertEquals(localObject.getAttrChar(), remoteObject.getAttrChar());
assertEquals(localObject.getAttrCharacterObject(), remoteObject.getAttrCharacterObject());
assertEquals(localObject.getAttrDate(), remoteObject.getAttrDate());
assertEquals(localObject.getAttrDouble(), remoteObject.getAttrDouble());
assertEquals(localObject.getAttrDoubleObject(), remoteObject.getAttrDoubleObject());
assertEquals(localObject.getAttrFloat(), remoteObject.getAttrFloat());
assertEquals(localObject.getAttrFloatObject(), remoteObject.getAttrFloatObject());
assertEquals(localObject.getAttrInt(), remoteObject.getAttrInt());
assertEquals(localObject.getAttrIntegerObject(), remoteObject.getAttrIntegerObject());
assertEquals(localObject.getAttrJavaClass(), remoteObject.getAttrJavaClass());
assertEquals(true, Arrays.equals((int[])localObject.getAttrJavaObject(), (int[])remoteObject.getAttrJavaObject()));
assertEquals(localObject.getAttrLong(), remoteObject.getAttrLong());
assertEquals(localObject.getAttrLongObject(), remoteObject.getAttrLongObject());
assertEquals(localObject.getAttrShort(), remoteObject.getAttrShort());
assertEquals(localObject.getAttrShortObject(), remoteObject.getAttrShortObject());
assertEquals(localObject.getAttrString(), remoteObject.getAttrString());
assertEquals(localObject.isSetAttrBigDecimal(), remoteObject.isSetAttrBigDecimal());
assertEquals(localObject.isSetAttrBigInteger(), remoteObject.isSetAttrBigInteger());
assertEquals(localObject.isSetAttrBoolean(), remoteObject.isSetAttrBoolean());
assertEquals(localObject.isSetAttrBooleanObject(), remoteObject.isSetAttrBooleanObject());
assertEquals(localObject.isSetAttrByte(), remoteObject.isSetAttrByte());
assertEquals(localObject.isSetAttrByteObject(), remoteObject.isSetAttrByteObject());
assertEquals(localObject.isSetAttrByteArray(), remoteObject.isSetAttrByteArray());
assertEquals(localObject.isSetAttrChar(), remoteObject.isSetAttrChar());
assertEquals(localObject.isSetAttrCharacterObject(), remoteObject.isSetAttrCharacterObject());
assertEquals(localObject.isSetAttrDate(), remoteObject.isSetAttrDate());
assertEquals(localObject.isSetAttrDouble(), remoteObject.isSetAttrDouble());
assertEquals(localObject.isSetAttrDoubleObject(), remoteObject.isSetAttrDoubleObject());
assertEquals(localObject.isSetAttrFloat(), remoteObject.isSetAttrFloat());
assertEquals(localObject.isSetAttrFloatObject(), remoteObject.isSetAttrFloatObject());
assertEquals(localObject.isSetAttrInt(), remoteObject.isSetAttrInt());
assertEquals(localObject.isSetAttrIntegerObject(), remoteObject.isSetAttrIntegerObject());
assertEquals(localObject.isSetAttrJavaClass(), remoteObject.isSetAttrJavaClass());
assertEquals(localObject.isSetAttrJavaObject(), remoteObject.isSetAttrJavaObject());
assertEquals(localObject.isSetAttrLong(), remoteObject.isSetAttrLong());
assertEquals(localObject.isSetAttrLongObject(), remoteObject.isSetAttrLongObject());
assertEquals(localObject.isSetAttrShort(), remoteObject.isSetAttrShort());
assertEquals(localObject.isSetAttrShortObject(), remoteObject.isSetAttrShortObject());
assertEquals(localObject.isSetAttrString(), remoteObject.isSetAttrString());
// Set all attributes to default values
localObject.setAttrBigDecimal(null);
localObject.setAttrBigInteger(null);
localObject.setAttrBoolean(false);
localObject.setAttrBooleanObject(false);
localObject.setAttrByte((byte)0);
localObject.setAttrByteObject(null);
localObject.setAttrByteArray(null);
localObject.setAttrChar('0');
localObject.setAttrCharacterObject(null);
localObject.setAttrDate(null);
localObject.setAttrDouble(0.0);
localObject.setAttrDoubleObject(null);
localObject.setAttrFloat(0.0f);
localObject.setAttrFloatObject(null);
localObject.setAttrInt(0);
localObject.setAttrIntegerObject(null);
localObject.setAttrJavaClass(null);
localObject.setAttrJavaObject(null);
localObject.setAttrLong(0L);
localObject.setAttrLongObject(null);
localObject.setAttrShort((short)0);
localObject.setAttrShortObject(null);
localObject.setAttrString(null);
commitAndSync(transaction, remoteTransaction);
assertEquals(localObject.getAttrBigDecimal(), remoteObject.getAttrBigDecimal());
assertEquals(localObject.getAttrBigInteger(), remoteObject.getAttrBigInteger());
assertEquals(localObject.isAttrBoolean(), remoteObject.isAttrBoolean());
assertEquals(localObject.getAttrBooleanObject(), remoteObject.getAttrBooleanObject());
assertEquals(localObject.getAttrByte(), remoteObject.getAttrByte());
assertEquals(localObject.getAttrByteObject(), remoteObject.getAttrByteObject());
assertEquals(true, Arrays.equals(localObject.getAttrByteArray(), remoteObject.getAttrByteArray()));
assertEquals(localObject.getAttrChar(), remoteObject.getAttrChar());
assertEquals(localObject.getAttrCharacterObject(), remoteObject.getAttrCharacterObject());
assertEquals(localObject.getAttrDate(), remoteObject.getAttrDate());
assertEquals(localObject.getAttrDouble(), remoteObject.getAttrDouble());
assertEquals(localObject.getAttrDoubleObject(), remoteObject.getAttrDoubleObject());
assertEquals(localObject.getAttrFloat(), remoteObject.getAttrFloat());
assertEquals(localObject.getAttrFloatObject(), remoteObject.getAttrFloatObject());
assertEquals(localObject.getAttrInt(), remoteObject.getAttrInt());
assertEquals(localObject.getAttrIntegerObject(), remoteObject.getAttrIntegerObject());
assertEquals(localObject.getAttrJavaClass(), remoteObject.getAttrJavaClass());
assertEquals(true, Arrays.equals((int[])localObject.getAttrJavaObject(), (int[])remoteObject.getAttrJavaObject()));
assertEquals(localObject.getAttrLong(), remoteObject.getAttrLong());
assertEquals(localObject.getAttrLongObject(), remoteObject.getAttrLongObject());
assertEquals(localObject.getAttrShort(), remoteObject.getAttrShort());
assertEquals(localObject.getAttrShortObject(), remoteObject.getAttrShortObject());
assertEquals(localObject.getAttrString(), remoteObject.getAttrString());
assertEquals(localObject.isSetAttrBigDecimal(), remoteObject.isSetAttrBigDecimal());
assertEquals(localObject.isSetAttrBigInteger(), remoteObject.isSetAttrBigInteger());
assertEquals(localObject.isSetAttrBoolean(), remoteObject.isSetAttrBoolean());
assertEquals(localObject.isSetAttrBooleanObject(), remoteObject.isSetAttrBooleanObject());
assertEquals(localObject.isSetAttrByte(), remoteObject.isSetAttrByte());
assertEquals(localObject.isSetAttrByteObject(), remoteObject.isSetAttrByteObject());
assertEquals(localObject.isSetAttrByteArray(), remoteObject.isSetAttrByteArray());
assertEquals(localObject.isSetAttrChar(), remoteObject.isSetAttrChar());
assertEquals(localObject.isSetAttrCharacterObject(), remoteObject.isSetAttrCharacterObject());
assertEquals(localObject.isSetAttrDate(), remoteObject.isSetAttrDate());
assertEquals(localObject.isSetAttrDouble(), remoteObject.isSetAttrDouble());
assertEquals(localObject.isSetAttrDoubleObject(), remoteObject.isSetAttrDoubleObject());
assertEquals(localObject.isSetAttrFloat(), remoteObject.isSetAttrFloat());
assertEquals(localObject.isSetAttrFloatObject(), remoteObject.isSetAttrFloatObject());
assertEquals(localObject.isSetAttrInt(), remoteObject.isSetAttrInt());
assertEquals(localObject.isSetAttrIntegerObject(), remoteObject.isSetAttrIntegerObject());
assertEquals(localObject.isSetAttrJavaClass(), remoteObject.isSetAttrJavaClass());
assertEquals(localObject.isSetAttrJavaObject(), remoteObject.isSetAttrJavaObject());
assertEquals(localObject.isSetAttrLong(), remoteObject.isSetAttrLong());
assertEquals(localObject.isSetAttrLongObject(), remoteObject.isSetAttrLongObject());
assertEquals(localObject.isSetAttrShort(), remoteObject.isSetAttrShort());
assertEquals(localObject.isSetAttrShortObject(), remoteObject.isSetAttrShortObject());
assertEquals(localObject.isSetAttrString(), remoteObject.isSetAttrString());
assertEquals(true, remoteObject.isSetAttrBigDecimal());
assertEquals(true, remoteObject.isSetAttrBigInteger());
assertEquals(true, remoteObject.isSetAttrBoolean());
assertEquals(true, remoteObject.isSetAttrBooleanObject());
assertEquals(true, remoteObject.isSetAttrByte());
assertEquals(true, remoteObject.isSetAttrByteObject());
assertEquals(true, remoteObject.isSetAttrByteArray());
assertEquals(true, remoteObject.isSetAttrChar());
assertEquals(true, remoteObject.isSetAttrCharacterObject());
assertEquals(true, remoteObject.isSetAttrDate());
assertEquals(true, remoteObject.isSetAttrDouble());
assertEquals(true, remoteObject.isSetAttrDoubleObject());
assertEquals(true, remoteObject.isSetAttrFloat());
assertEquals(true, remoteObject.isSetAttrFloatObject());
assertEquals(true, remoteObject.isSetAttrInt());
assertEquals(true, remoteObject.isSetAttrIntegerObject());
assertEquals(true, remoteObject.isSetAttrJavaClass());
assertEquals(true, remoteObject.isSetAttrJavaObject());
assertEquals(true, remoteObject.isSetAttrLong());
assertEquals(true, remoteObject.isSetAttrLongObject());
assertEquals(true, remoteObject.isSetAttrShort());
assertEquals(true, remoteObject.isSetAttrShortObject());
assertEquals(true, remoteObject.isSetAttrString());
}
public void testAllTypesSetAndNull() throws Exception
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/res"));
// Create an object and set all attributes to non-default values
UnsettableAttributes localObject = getModel6Factory().createUnsettableAttributes();
localObject.setAttrBigDecimal(new BigDecimal("4711.1234"));
localObject.setAttrBigInteger(new BigInteger("4711"));
localObject.setAttrBooleanObject(true);
localObject.setAttrByteObject((byte)47);
localObject.setAttrByteArray(new byte[] { 4, 7, 1, 1 });
localObject.setAttrCharacterObject('4');
localObject.setAttrDate(new Date(4711));
localObject.setAttrDoubleObject(4711.1234);
localObject.setAttrFloatObject(4711.1234f);
localObject.setAttrIntegerObject(4711);
localObject.setAttrJavaClass(getClass());
localObject.setAttrJavaObject(new int[] { 4, 7, 1, 1 });
localObject.setAttrLongObject(4711L);
localObject.setAttrShortObject((short)4711);
localObject.setAttrString("4711");
resource.getContents().add(localObject);
transaction.commit();
CDOTransaction remoteTransaction = openSession().openTransaction();
UnsettableAttributes remoteObject = remoteTransaction.getObject(localObject);
// Set all attributes to default values
localObject.setAttrBigDecimal(null);
localObject.setAttrBigInteger(null);
localObject.setAttrBooleanObject(null);
localObject.setAttrByteObject(null);
localObject.setAttrByteArray(null);
localObject.setAttrCharacterObject(null);
localObject.setAttrDate(null);
localObject.setAttrDoubleObject(null);
localObject.setAttrFloatObject(null);
localObject.setAttrIntegerObject(null);
localObject.setAttrJavaClass(null);
localObject.setAttrJavaObject(null);
localObject.setAttrLongObject(null);
localObject.setAttrShortObject(null);
localObject.setAttrString(null);
commitAndSync(transaction, remoteTransaction);
assertEquals(localObject.getAttrBigDecimal(), remoteObject.getAttrBigDecimal());
assertEquals(localObject.getAttrBigInteger(), remoteObject.getAttrBigInteger());
assertEquals(localObject.getAttrBooleanObject(), remoteObject.getAttrBooleanObject());
assertEquals(localObject.getAttrByteObject(), remoteObject.getAttrByteObject());
assertEquals(true, Arrays.equals(localObject.getAttrByteArray(), remoteObject.getAttrByteArray()));
assertEquals(localObject.getAttrCharacterObject(), remoteObject.getAttrCharacterObject());
assertEquals(localObject.getAttrDate(), remoteObject.getAttrDate());
assertEquals(localObject.getAttrDoubleObject(), remoteObject.getAttrDoubleObject());
assertEquals(localObject.getAttrFloatObject(), remoteObject.getAttrFloatObject());
assertEquals(localObject.getAttrIntegerObject(), remoteObject.getAttrIntegerObject());
assertEquals(localObject.getAttrJavaClass(), remoteObject.getAttrJavaClass());
assertEquals(true, Arrays.equals((int[])localObject.getAttrJavaObject(), (int[])remoteObject.getAttrJavaObject()));
assertEquals(localObject.getAttrLongObject(), remoteObject.getAttrLongObject());
assertEquals(localObject.getAttrShortObject(), remoteObject.getAttrShortObject());
assertEquals(localObject.getAttrString(), remoteObject.getAttrString());
assertEquals(localObject.isSetAttrBigDecimal(), remoteObject.isSetAttrBigDecimal());
assertEquals(localObject.isSetAttrBigInteger(), remoteObject.isSetAttrBigInteger());
assertEquals(localObject.isSetAttrBooleanObject(), remoteObject.isSetAttrBooleanObject());
assertEquals(localObject.isSetAttrByteObject(), remoteObject.isSetAttrByteObject());
assertEquals(localObject.isSetAttrByteArray(), remoteObject.isSetAttrByteArray());
assertEquals(localObject.isSetAttrCharacterObject(), remoteObject.isSetAttrCharacterObject());
assertEquals(localObject.isSetAttrDate(), remoteObject.isSetAttrDate());
assertEquals(localObject.isSetAttrDoubleObject(), remoteObject.isSetAttrDoubleObject());
assertEquals(localObject.isSetAttrFloatObject(), remoteObject.isSetAttrFloatObject());
assertEquals(localObject.isSetAttrIntegerObject(), remoteObject.isSetAttrIntegerObject());
assertEquals(localObject.isSetAttrJavaClass(), remoteObject.isSetAttrJavaClass());
assertEquals(localObject.isSetAttrJavaObject(), remoteObject.isSetAttrJavaObject());
assertEquals(localObject.isSetAttrLongObject(), remoteObject.isSetAttrLongObject());
assertEquals(localObject.isSetAttrShortObject(), remoteObject.isSetAttrShortObject());
assertEquals(localObject.isSetAttrString(), remoteObject.isSetAttrString());
assertEquals(true, remoteObject.isSetAttrBigDecimal());
assertEquals(true, remoteObject.isSetAttrBigInteger());
assertEquals(true, remoteObject.isSetAttrBooleanObject());
assertEquals(true, remoteObject.isSetAttrByteObject());
assertEquals(true, remoteObject.isSetAttrByteArray());
assertEquals(true, remoteObject.isSetAttrCharacterObject());
assertEquals(true, remoteObject.isSetAttrDate());
assertEquals(true, remoteObject.isSetAttrDoubleObject());
assertEquals(true, remoteObject.isSetAttrFloatObject());
assertEquals(true, remoteObject.isSetAttrIntegerObject());
assertEquals(true, remoteObject.isSetAttrJavaClass());
assertEquals(true, remoteObject.isSetAttrJavaObject());
assertEquals(true, remoteObject.isSetAttrLongObject());
assertEquals(true, remoteObject.isSetAttrShortObject());
assertEquals(true, remoteObject.isSetAttrString());
}
public void testAllTypesSetAndDefaultEMF() throws Exception
{
// Create an object and set all attributes to non-default values
UnsettableAttributes localObject = Model6Factory.eINSTANCE.createUnsettableAttributes();
localObject.setAttrBigDecimal(new BigDecimal("4711.1234"));
localObject.setAttrBigInteger(new BigInteger("4711"));
localObject.setAttrBoolean(true);
localObject.setAttrBooleanObject(true);
localObject.setAttrByte((byte)47);
localObject.setAttrByteObject((byte)47);
localObject.setAttrByteArray(new byte[] { 4, 7, 1, 1 });
localObject.setAttrChar('4');
localObject.setAttrCharacterObject('4');
localObject.setAttrDate(new Date(4711));
localObject.setAttrDouble(4711.1234);
localObject.setAttrDoubleObject(4711.1234);
localObject.setAttrFloat(4711.1234f);
localObject.setAttrFloatObject(4711.1234f);
localObject.setAttrInt(4711);
localObject.setAttrIntegerObject(4711);
localObject.setAttrJavaClass(getClass());
localObject.setAttrJavaObject(new int[] { 4, 7, 1, 1 });
localObject.setAttrLong(4711L);
localObject.setAttrLongObject(4711L);
localObject.setAttrShort((short)4711);
localObject.setAttrShortObject((short)4711);
localObject.setAttrString("4711");
assertEquals(true, localObject.isSetAttrBigDecimal());
assertEquals(true, localObject.isSetAttrBigInteger());
assertEquals(true, localObject.isSetAttrBoolean());
assertEquals(true, localObject.isSetAttrBooleanObject());
assertEquals(true, localObject.isSetAttrByte());
assertEquals(true, localObject.isSetAttrByteObject());
assertEquals(true, localObject.isSetAttrByteArray());
assertEquals(true, localObject.isSetAttrChar());
assertEquals(true, localObject.isSetAttrCharacterObject());
assertEquals(true, localObject.isSetAttrDate());
assertEquals(true, localObject.isSetAttrDouble());
assertEquals(true, localObject.isSetAttrDoubleObject());
assertEquals(true, localObject.isSetAttrFloat());
assertEquals(true, localObject.isSetAttrFloatObject());
assertEquals(true, localObject.isSetAttrInt());
assertEquals(true, localObject.isSetAttrIntegerObject());
assertEquals(true, localObject.isSetAttrJavaClass());
assertEquals(true, localObject.isSetAttrJavaObject());
assertEquals(true, localObject.isSetAttrLong());
assertEquals(true, localObject.isSetAttrLongObject());
assertEquals(true, localObject.isSetAttrShort());
assertEquals(true, localObject.isSetAttrShortObject());
assertEquals(true, localObject.isSetAttrString());
// Set all attributes to default values
localObject.setAttrBigDecimal(null);
localObject.setAttrBigInteger(null);
localObject.setAttrBoolean(false);
localObject.setAttrBooleanObject(false);
localObject.setAttrByte((byte)0);
localObject.setAttrByteObject(null);
localObject.setAttrByteArray(null);
localObject.setAttrChar('0');
localObject.setAttrCharacterObject(null);
localObject.setAttrDate(null);
localObject.setAttrDouble(0.0);
localObject.setAttrDoubleObject(null);
localObject.setAttrFloat(0.0f);
localObject.setAttrFloatObject(null);
localObject.setAttrInt(0);
localObject.setAttrIntegerObject(null);
localObject.setAttrJavaClass(null);
localObject.setAttrJavaObject(null);
localObject.setAttrLong(0L);
localObject.setAttrLongObject(null);
localObject.setAttrShort((short)0);
localObject.setAttrShortObject(null);
localObject.setAttrString(null);
assertEquals(true, localObject.isSetAttrBigDecimal());
assertEquals(true, localObject.isSetAttrBigInteger());
assertEquals(true, localObject.isSetAttrBoolean());
assertEquals(true, localObject.isSetAttrBooleanObject());
assertEquals(true, localObject.isSetAttrByte());
assertEquals(true, localObject.isSetAttrByteObject());
assertEquals(true, localObject.isSetAttrByteArray());
assertEquals(true, localObject.isSetAttrChar());
assertEquals(true, localObject.isSetAttrCharacterObject());
assertEquals(true, localObject.isSetAttrDate());
assertEquals(true, localObject.isSetAttrDouble());
assertEquals(true, localObject.isSetAttrDoubleObject());
assertEquals(true, localObject.isSetAttrFloat());
assertEquals(true, localObject.isSetAttrFloatObject());
assertEquals(true, localObject.isSetAttrInt());
assertEquals(true, localObject.isSetAttrIntegerObject());
assertEquals(true, localObject.isSetAttrJavaClass());
assertEquals(true, localObject.isSetAttrJavaObject());
assertEquals(true, localObject.isSetAttrLong());
assertEquals(true, localObject.isSetAttrLongObject());
assertEquals(true, localObject.isSetAttrShort());
assertEquals(true, localObject.isSetAttrShortObject());
assertEquals(true, localObject.isSetAttrString());
}
}