/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ package org.apache.directory.studio.schemaeditor.model.difference; import java.util.Arrays; import java.util.List; import junit.framework.TestCase; import org.apache.directory.api.ldap.model.schema.AttributeType; import org.apache.directory.api.ldap.model.schema.MutableAttributeType; import org.apache.directory.api.ldap.model.schema.MutableObjectClass; import org.apache.directory.api.ldap.model.schema.ObjectClass; import org.apache.directory.api.ldap.model.schema.ObjectClassTypeEnum; import org.apache.directory.api.ldap.model.schema.UsageEnum; /** * This class tests the DifferenceEngine class. * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public class DifferenceEngineTest extends TestCase { /** * Tests the AddAliasDifference. * * @throws Exception */ public void testAddAliasDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setNames( new String[] { "alias" } ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof AliasDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "alias", ( ( AliasDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddDescriptionDifference. * * @throws Exception */ public void testAddDescriptionDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setDescription( "Description" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof DescriptionDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "Description", ( ( DescriptionDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddEqualityDifference. * * @throws Exception */ public void testAddEqualityDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setEqualityOid( "Equality" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof EqualityDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "Equality", ( ( EqualityDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddMandatoryATDifference. * * @throws Exception */ public void testAddMandatoryATDifference() throws Exception { ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setMustAttributeTypeOids( Arrays.asList( new String[] { "must" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof MandatoryATDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "must", ( ( MandatoryATDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddOptionalATDifference. * * @throws Exception */ public void testAddOptionalATDifference() throws Exception { ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setMayAttributeTypeOids( Arrays.asList( new String[] { "may" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof OptionalATDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "may", ( ( OptionalATDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddOrderingDifference. * * @throws Exception */ public void testAddOrderingDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setOrderingOid( "Ordering" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof OrderingDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "Ordering", ( ( OrderingDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddSubstringDifference. * * @throws Exception */ public void testAddSubstringDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSubstringOid( "Substring" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SubstringDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "Substring", ( ( SubstringDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddSuperiorATDifference. * * @throws Exception */ public void testAddSuperiorATDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSuperiorOid( "superiorAT" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SuperiorATDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "superiorAT", ( ( SuperiorATDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddSuperiorOCDifference. * * @throws Exception */ public void testAddSuperiorOCDifference() throws Exception { ObjectClass o1 = new ObjectClass( "1.2.3.4" ); //$NON-NLS-1$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setSuperiorOids( Arrays.asList( new String[] { "superiorOC" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SuperiorOCDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "superiorOC", ( ( SuperiorOCDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddSyntaxDifference. * * @throws Exception */ public void testAddSyntaxDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( "1.2.3.4.5", ( ( SyntaxDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the AddSyntaxLengthDifference. * * @throws Exception */ public void testAddSyntaxLengthDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSyntaxLength( 1234 ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxLengthDifference ) || ( !difference.getType().equals( DifferenceType.ADDED ) ) ) { fail(); } assertEquals( 1234L, ( ( SyntaxLengthDifference ) difference ).getNewValue() ); } /** * Tests the ModifyClassTypeDifference. * * @throws Exception */ public void testModifyClassTypeDifference() throws Exception { MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o1.setType( ObjectClassTypeEnum.STRUCTURAL ); MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setType( ObjectClassTypeEnum.ABSTRACT ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof ClassTypeDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( ObjectClassTypeEnum.STRUCTURAL, ( ( ClassTypeDifference ) difference ).getOldValue() ); assertEquals( ObjectClassTypeEnum.ABSTRACT, ( ( ClassTypeDifference ) difference ).getNewValue() ); } /** * Tests the ModifyCollectiveDifference. * * @throws Exception */ public void testModifyCollectiveDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setCollective( true ); MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setCollective( false ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof CollectiveDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( true, ( ( CollectiveDifference ) difference ).getOldValue() ); assertEquals( false, ( ( CollectiveDifference ) difference ).getNewValue() ); } /** * Tests the ModifyDescriptionDifference. * * @throws Exception */ public void testModifyDescriptionDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setDescription( "Description" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setDescription( "New Description" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof DescriptionDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "Description", ( ( DescriptionDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "New Description", ( ( DescriptionDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifyEqualityDifference. * * @throws Exception */ public void testModifyEqualityDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setEqualityOid( "equalityName" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setEqualityOid( "newEqualityName" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof EqualityDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "equalityName", ( ( EqualityDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "newEqualityName", ( ( EqualityDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifyNoUserModificationDifference. * * @throws Exception */ public void testModifyNoUserModificationDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setUserModifiable( true ); MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setUserModifiable( false ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof NoUserModificationDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( true, ( ( NoUserModificationDifference ) difference ).getOldValue() ); assertEquals( false, ( ( NoUserModificationDifference ) difference ).getNewValue() ); } /** * Tests the ModifyObsoleteDifference. * * @throws Exception */ public void testModifyObsoleteDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setObsolete( true ); AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setObsolete( false ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof ObsoleteDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( true, ( ( ObsoleteDifference ) difference ).getOldValue() ); assertEquals( false, ( ( ObsoleteDifference ) difference ).getNewValue() ); } /** * Tests the ModifyOrderingDifference. * * @throws Exception */ public void testModifyOrderingDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setOrderingOid( "orderingName" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setOrderingOid( "newOrderingName" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof OrderingDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "orderingName", ( ( OrderingDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "newOrderingName", ( ( OrderingDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifySingleValueDifference. * * @throws Exception */ public void testModifySingleValueDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSingleValued( true ); MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSingleValued( false ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SingleValueDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( true, ( ( SingleValueDifference ) difference ).getOldValue() ); assertEquals( false, ( ( SingleValueDifference ) difference ).getNewValue() ); } /** * Tests the ModifySubstringDifference. * * @throws Exception */ public void testModifySubstringDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSubstringOid( "substrName" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSubstringOid( "newSubstrName" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SubstringDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "substrName", ( ( SubstringDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "newSubstrName", ( ( SubstringDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifySuperiorATDifference. * * @throws Exception */ public void testModifySuperiorATDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSuperiorOid( "superiorName" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSuperiorOid( "newSuperiorName" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SuperiorATDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "superiorName", ( ( SuperiorATDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "newSuperiorName", ( ( SuperiorATDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifySyntaxDifference. * * @throws Exception */ public void testModifySyntaxDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$ MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSyntaxOid( "1.2.3.4.6" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( "1.2.3.4.5", ( ( SyntaxDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertEquals( "1.2.3.4.6", ( ( SyntaxDifference ) difference ).getNewValue() ); //$NON-NLS-1$ } /** * Tests the ModifySyntaxLengthDifference. * * @throws Exception */ public void testModifySyntaxLengthDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSyntaxLength( 1234 ); MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setSyntaxLength( 12345 ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxLengthDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( 1234L, ( ( SyntaxLengthDifference ) difference ).getOldValue() ); assertEquals( 12345L, ( ( SyntaxLengthDifference ) difference ).getNewValue() ); } /** * Tests the ModifyUsageDifference. * * @throws Exception */ public void testModifyUsageDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setUsage( UsageEnum.DISTRIBUTED_OPERATION ); MutableAttributeType o2 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setUsage( UsageEnum.DIRECTORY_OPERATION ); List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof UsageDifference ) || ( !difference.getType().equals( DifferenceType.MODIFIED ) ) ) { fail(); } assertEquals( UsageEnum.DISTRIBUTED_OPERATION, ( ( UsageDifference ) difference ).getOldValue() ); assertEquals( UsageEnum.DIRECTORY_OPERATION, ( ( UsageDifference ) difference ).getNewValue() ); } /** * Tests the RemoveAliasDifference. * * @throws Exception */ public void testRemoveAliasDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setNames( new String[] { "name1", "name2" } ); //$NON-NLS-1$ //$NON-NLS-2$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o2.setNames( new String[] { "name2" } ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof AliasDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "name1", ( ( AliasDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( AliasDifference ) difference ).getNewValue() ); } /** * Tests the RemoveDescriptionDifference. * * @throws Exception */ public void testRemoveDescriptionDifference() throws Exception { AttributeType o1 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setDescription( "Description" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof DescriptionDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "Description", ( ( DescriptionDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( DescriptionDifference ) difference ).getNewValue() ); } /** * Tests the RemoveEqualityDifference. * * @throws Exception */ public void testRemoveEqualityDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setEqualityOid( "equalityName" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof EqualityDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "equalityName", ( ( EqualityDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( EqualityDifference ) difference ).getNewValue() ); } /** * Tests the RemoveMandatoryATDifference. * * @throws Exception */ public void testRemoveMandatoryATDifference() throws Exception { MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o1.setMustAttributeTypeOids( Arrays.asList( new String[] { "must1", "must2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setMustAttributeTypeOids( Arrays.asList( new String[] { "must2" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof MandatoryATDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "must1", ( ( MandatoryATDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( MandatoryATDifference ) difference ).getNewValue() ); } /** * Tests the RemoveOptionalATDifference. * * @throws Exception */ public void testRemoveOptionalATDifference() throws Exception { MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o1.setMayAttributeTypeOids( Arrays.asList( new String[] { "may1", "may2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setMayAttributeTypeOids( Arrays.asList( new String[] { "may2" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof OptionalATDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "may1", ( ( OptionalATDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( OptionalATDifference ) difference ).getNewValue() ); } /** * Tests the RemoveOrderingDifference. * * @throws Exception */ public void testRemoveOrderingDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setOrderingOid( "orderingName" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof OrderingDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "orderingName", ( ( OrderingDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( OrderingDifference ) difference ).getNewValue() ); } /** * Tests the RemoveSubstringDifference. * * @throws Exception */ public void testRemoveSubstringDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSubstringOid( "substrName" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SubstringDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "substrName", ( ( SubstringDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( SubstringDifference ) difference ).getNewValue() ); } /** * Tests the RemoveSuperiorATDifference. * * @throws Exception */ public void testRemoveSuperiorATDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSuperiorOid( "superiorName" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SuperiorATDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "superiorName", ( ( SuperiorATDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( SuperiorATDifference ) difference ).getNewValue() ); } /** * Tests the RemoveSuperiorOCDifference. * * @throws Exception */ public void testRemoveSuperiorOCDifference() throws Exception { MutableObjectClass o1 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o1.setSuperiorOids( Arrays.asList( new String[] { "sup1", "sup2" } ) ); //$NON-NLS-1$ //$NON-NLS-2$ MutableObjectClass o2 = new MutableObjectClass( "1.2.3.4" ); //$NON-NLS-1$ o2.setSuperiorOids( Arrays.asList( new String[] { "sup2" } ) ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SuperiorOCDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "sup1", ( ( SuperiorOCDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( SuperiorOCDifference ) difference ).getNewValue() ); } /** * Tests the RemoveSyntaxDifference. * * @throws Exception */ public void testRemoveSyntaxDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSyntaxOid( "1.2.3.4.5" ); //$NON-NLS-1$ AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( "1.2.3.4.5", ( ( SyntaxDifference ) difference ).getOldValue() ); //$NON-NLS-1$ assertNull( ( ( SyntaxDifference ) difference ).getNewValue() ); } /** * Tests the RemoveSyntaxLengthDifference. * * @throws Exception */ public void testRemoveSyntaxLengthDifference() throws Exception { MutableAttributeType o1 = new MutableAttributeType( "1.2.3.4" ); //$NON-NLS-1$ o1.setSyntaxLength( 1234 ); AttributeType o2 = new AttributeType( "1.2.3.4" ); //$NON-NLS-1$ List<PropertyDifference> differences = DifferenceEngine.getDifferences( o1, o2 ); assertEquals( 1, differences.size() ); Difference difference = differences.get( 0 ); if ( !( difference instanceof SyntaxLengthDifference ) || ( !difference.getType().equals( DifferenceType.REMOVED ) ) ) { fail(); } assertEquals( 1234L, ( ( SyntaxLengthDifference ) difference ).getOldValue() ); assertNull( ( ( SyntaxLengthDifference ) difference ).getNewValue() ); } }