/* Copyright (c) 2014 Boundless and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/edl-v10.html
*
* Contributors:
* Johnathan Garrett (LMN Solutions) - initial implementation
*/
package org.locationtech.geogig.api.plumbing.diff;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.google.common.base.Optional;
/**
*
*/
public class AttributeDiffTest extends Assert {
@Before
public void setUp() {
}
@Test
public void testAttributeDiffRemoved() {
Optional<Integer> oldValue = Optional.of(1);
Optional<Integer> newValue = null;
AttributeDiff diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.REMOVED);
assertTrue(diff.getOldValue().equals(oldValue));
assertFalse(diff.getNewValue().isPresent());
newValue = Optional.absent();
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.REMOVED);
assertTrue(diff.getOldValue().equals(oldValue));
assertFalse(diff.getNewValue().isPresent());
}
@Test
public void testAttributeDiffAdded() {
Optional<Integer> oldValue = null;
Optional<Integer> newValue = Optional.of(1);
AttributeDiff diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.ADDED);
assertFalse(diff.getOldValue().isPresent());
assertTrue(diff.getNewValue().equals(newValue));
oldValue = Optional.absent();
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.ADDED);
assertFalse(diff.getOldValue().isPresent());
assertTrue(diff.getNewValue().equals(newValue));
}
@Test
public void testAttributeDiffModified() {
Optional<Integer> oldValue = Optional.of(1);
Optional<Integer> newValue = Optional.of(2);
AttributeDiff diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.MODIFIED);
assertTrue(diff.getOldValue().equals(oldValue));
assertTrue(diff.getNewValue().equals(newValue));
}
@Test
public void testAttributeDiffNoChange() {
Optional<Integer> oldValue = Optional.of(1);
Optional<Integer> newValue = Optional.of(1);
AttributeDiff diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.NO_CHANGE);
assertTrue(diff.getOldValue().equals(oldValue));
assertTrue(diff.getNewValue().equals(newValue));
oldValue = Optional.absent();
newValue = Optional.absent();
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.NO_CHANGE);
assertFalse(diff.getOldValue().isPresent());
assertFalse(diff.getNewValue().isPresent());
oldValue = null;
newValue = null;
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.NO_CHANGE);
assertFalse(diff.getOldValue().isPresent());
assertFalse(diff.getNewValue().isPresent());
oldValue = null;
newValue = Optional.absent();
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.NO_CHANGE);
assertFalse(diff.getOldValue().isPresent());
assertFalse(diff.getNewValue().isPresent());
oldValue = Optional.absent();
newValue = null;
diff = new GenericAttributeDiffImpl(oldValue, newValue);
assertTrue(diff.getType() == AttributeDiff.TYPE.NO_CHANGE);
assertFalse(diff.getOldValue().isPresent());
assertFalse(diff.getNewValue().isPresent());
}
}