diff --git a/README.md b/README.md
index 255fd255..28945b91 100644
--- a/README.md
+++ b/README.md
@@ -1,45 +1,3 @@
-## Introduction
-
-Sometimes you need to figure out, how one version of an object differs from another one. One of the simplest solutions that'll cross your mind is most certainly to use reflection to scan the object for fields or getters and use them to compare the values of the different object instances. In many cases this is a perfectly valid strategy and the way to go. After all, we want to keep things simple, don't we?
-
-However, there are some cases that can increase the complexity dramatically. What if you need to find differences in collections or maps? What if you have to deal with nested objects that also need to be compared on a per-property basis? Or even worse: what if you need to merge such objects?
-
-You suddenly realize that you need to scan the objects recursively, figure out which collection items have been added, removed or changed; find a way to return your results in a way that allows you to easily access the information you are looking for and provide accessors to apply changes.
-
-While all this isn't exactly rocket science, it is complex enough to add quite a lot of extra code to your project. Code that needs to be tested and maintained. Since the best code is the code you didn't write, this library aims to help you with all things related to diffing and merging of Java objects by providing a robust foundation and a simple, yet powerful API.
-
-This library will hide all the complexities of deep object comparison behind one line of code:
-
- Node root = ObjectDifferFactory.getInstance().compare(workingObject, baseObject);
-
-This generates a tree structure of the given object type and lets you traverse its nodes via visitors. Each node represents one property (or collection item) of the underlying object and tells you exactly if and how the value differs from the base version. It also provides accessors to read, write and remove the value from or to any given instance. This way, all you need to worry about is **how to treat** changes and **not how to find** them.
-
-This library has been battle-tested in a rather big project of mine, where I use it to generate **activity streams**, resolve database **update conflics**, display **change logs** and limit the scope of entity updates to only a **subset of properties**, based on the context or user permissions. It didn't let me down so far and I hope that it can help you too!
-
-## Getting Started
-
-To learn how to use **Java Object Diff**, please have a look at the [Starter Guide](https://github.com/SQiShER/java-object-diff/wiki/Getting-Started).
-
-## Features
-
-* Generates a graph of your object, in which each node provides information about the changes and accessors to read and write the value on any instance of the given type.
-* Visitor-support allows you to extract and modify exactly what you want.
-* Designed to work with any kind of object out-of-the-box.
-* Makes dealing with Collections and Maps very easy.
-* Properties can be categorized, to easily compare or merge specific subsets. (This is particulary useful for databases like [MongoDB](http://www.mongodb.org/) that support [atomic property operations](http://www.mongodb.org/display/DOCS/Atomic+Operations).)
-* Comparison can be improved and customized via annotations and/or configuration API.
-* No annotations needed. (However, they exist for your convenience.)
-* No runtime dependencies except for [SLF4J](http://www.slf4j.org/).
-
-## Use Cases
-
-**Java Object Diff** is currently used (but not limited) to...
-
-* Generate Facebook-like activity streams
-* Visualize the differences between object versions
-* Automatically resolve conflicts on conflicting database updates
-* Detect and persist only properties that were actually changed
-
-## Known Issues and Limitations
-
-Please refer to the [Issue Tracker](https://github.com/SQiShER/java-object-diff/issues?state=open) for a list of currently known limitations.
+- [X] Fork and rename packages
+- [ ] Designing Type info to collection item
+- [ ] Re-Design DS for PP
diff --git a/pom.xml b/pom.xml
old mode 100644
new mode 100755
index 69483a24..f1579936
--- a/pom.xml
+++ b/pom.xml
@@ -24,21 +24,21 @@
4.0.0
- de.danielbechler
+ in.th3iedkid
java-object-diff
- Java Object Diff
- 0.13-SNAPSHOT
+ Java Object Diff forked from Java Object Diff by daniel bachelor
+ 0.1-SNAPSHOT
SQiShER
- Daniel Bechler
- https://github.com/SQiShER
+ th3iedkid
+ https://github.com/th3iedkid
- https://github.com/SQiShER/java-object-diff
- Framework to detect and handle differences between Java objects
+ https://github.com/th3iedkid/java-object-diff
+ Framework to detect and handle differences between Java objects with some added fun
@@ -48,14 +48,14 @@
- https://github.com/SQiShER/java-object-diff
- scm:git:ssh://git@github.com/SQiShER/java-object-diff.git
- scm:git:ssh://git@github.com/SQiShER/java-object-diff.git
+ https://github.com/th3iedkid/java-object-diff
+ scm:git@github.com:th3iedkid/java-object-diff.git
+ scm:git@github.com:th3iedkid/java-object-diff.git
GitHub
- https://github.com/SQiShER/java-object-diff/issues
+ https://github.com/th3iedkid/java-object-diff
@@ -175,7 +175,7 @@
true
- Daniel Bechler
+ th3iedkid
${project.url}
{local-packages}
diff --git a/src/main/java/de/danielbechler/diff/BeanDiffer.java b/src/main/java/in/th3iedkid/diff/BeanDiffer.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/BeanDiffer.java
rename to src/main/java/in/th3iedkid/diff/BeanDiffer.java
index 430e7289..86f82b82
--- a/src/main/java/de/danielbechler/diff/BeanDiffer.java
+++ b/src/main/java/in/th3iedkid/diff/BeanDiffer.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.introspect.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.introspect.Introspector;
+import in.th3iedkid.diff.introspect.StandardIntrospector;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
/**
* Used to find differences between objects that were not handled by one of the other (specialized) {@link
diff --git a/src/main/java/de/danielbechler/diff/BeanPropertyComparisonDelegator.java b/src/main/java/in/th3iedkid/diff/BeanPropertyComparisonDelegator.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/main/java/de/danielbechler/diff/BeanPropertyComparisonDelegator.java
rename to src/main/java/in/th3iedkid/diff/BeanPropertyComparisonDelegator.java
index 02238fea..a749d43c
--- a/src/main/java/de/danielbechler/diff/BeanPropertyComparisonDelegator.java
+++ b/src/main/java/in/th3iedkid/diff/BeanPropertyComparisonDelegator.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
class BeanPropertyComparisonDelegator
diff --git a/src/main/java/de/danielbechler/diff/CircularReferenceDetector.java b/src/main/java/in/th3iedkid/diff/CircularReferenceDetector.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/diff/CircularReferenceDetector.java
rename to src/main/java/in/th3iedkid/diff/CircularReferenceDetector.java
index 46d26249..6b94136e
--- a/src/main/java/de/danielbechler/diff/CircularReferenceDetector.java
+++ b/src/main/java/in/th3iedkid/diff/CircularReferenceDetector.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Assert;
-import java.util.*;
+import java.util.LinkedList;
/** @author Daniel Bechler */
class CircularReferenceDetector
diff --git a/src/main/java/de/danielbechler/diff/CircularReferenceDetectorFactory.java b/src/main/java/in/th3iedkid/diff/CircularReferenceDetectorFactory.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/CircularReferenceDetectorFactory.java
rename to src/main/java/in/th3iedkid/diff/CircularReferenceDetectorFactory.java
index 19241d2a..bff63bb6
--- a/src/main/java/de/danielbechler/diff/CircularReferenceDetectorFactory.java
+++ b/src/main/java/in/th3iedkid/diff/CircularReferenceDetectorFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
/** @author Daniel Bechler */
public interface CircularReferenceDetectorFactory
diff --git a/src/main/java/de/danielbechler/diff/CollectionDiffer.java b/src/main/java/in/th3iedkid/diff/CollectionDiffer.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/CollectionDiffer.java
rename to src/main/java/in/th3iedkid/diff/CollectionDiffer.java
index 18a8f325..eb25f045
--- a/src/main/java/de/danielbechler/diff/CollectionDiffer.java
+++ b/src/main/java/in/th3iedkid/diff/CollectionDiffer.java
@@ -14,14 +14,15 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
-import de.danielbechler.util.Collections;
+import in.th3iedkid.diff.accessor.CollectionItemAccessor;
+import in.th3iedkid.diff.node.CollectionNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
/**
* Used to find differences between {@link Collection Collections}.
@@ -108,13 +109,13 @@ private Node compareItem(final Node collectionNode,
@SuppressWarnings("unchecked")
private static Collection> addedItemsOf(final Instances instances)
{
- return Collections.filteredCopyOf(instances.getWorking(Collection.class), instances.getBase(Collection.class));
+ return in.th3iedkid.util.Collections.filteredCopyOf(instances.getWorking(Collection.class), instances.getBase(Collection.class));
}
@SuppressWarnings("unchecked")
private static Collection> removedItemsOf(final Instances instances)
{
- return Collections.filteredCopyOf(instances.getBase(Collection.class), instances.getWorking(Collection.class));
+ return in.th3iedkid.util.Collections.filteredCopyOf(instances.getBase(Collection.class), instances.getWorking(Collection.class));
}
@SuppressWarnings("unchecked")
diff --git a/src/main/java/de/danielbechler/diff/CollectionItemAccessorFactory.java b/src/main/java/in/th3iedkid/diff/CollectionItemAccessorFactory.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/CollectionItemAccessorFactory.java
rename to src/main/java/in/th3iedkid/diff/CollectionItemAccessorFactory.java
index 8cbc5ec3..f27f35ce
--- a/src/main/java/de/danielbechler/diff/CollectionItemAccessorFactory.java
+++ b/src/main/java/in/th3iedkid/diff/CollectionItemAccessorFactory.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
+import in.th3iedkid.diff.accessor.CollectionItemAccessor;
@SuppressWarnings("MethodMayBeStatic")
class CollectionItemAccessorFactory
diff --git a/src/main/java/de/danielbechler/diff/CollectionNodeFactory.java b/src/main/java/in/th3iedkid/diff/CollectionNodeFactory.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/CollectionNodeFactory.java
rename to src/main/java/in/th3iedkid/diff/CollectionNodeFactory.java
index 31eb7771..47224867
--- a/src/main/java/de/danielbechler/diff/CollectionNodeFactory.java
+++ b/src/main/java/in/th3iedkid/diff/CollectionNodeFactory.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.node.CollectionNode;
+import in.th3iedkid.diff.node.Node;
@SuppressWarnings("MethodMayBeStatic")
class CollectionNodeFactory
diff --git a/src/main/java/de/danielbechler/diff/Configuration.java b/src/main/java/in/th3iedkid/diff/Configuration.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/Configuration.java
rename to src/main/java/in/th3iedkid/diff/Configuration.java
index 5396a2ea..a632d310
--- a/src/main/java/de/danielbechler/diff/Configuration.java
+++ b/src/main/java/in/th3iedkid/diff/Configuration.java
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.annotation.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.annotation.ObjectDiffEqualsOnlyType;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Assert;
+import in.th3iedkid.util.Classes;
import java.util.*;
-import static de.danielbechler.util.Collections.*;
+import static in.th3iedkid.util.Collections.containsAny;
/** @author Daniel Bechler */
@SuppressWarnings("UnusedDeclaration")
@@ -31,7 +32,7 @@ public class Configuration implements NodeInspector
{
/**
* Defines how the {@link CircularReferenceDetector} compares object instances. The default is {@link
- * de.danielbechler.diff.Configuration.CircularReferenceMatchingMode#EQUALITY_OPERATOR} and this should be
+ * Configuration.CircularReferenceMatchingMode#EQUALITY_OPERATOR} and this should be
* sufficient in mose cases. However, you may be dealing with an object model that returns copies of its
* properties, instead of reusing the exact same instance. In this cases it would be easy to end up in
* infinite loops, as the default circular reference detection would not be able to detect this. In those
@@ -60,14 +61,14 @@ public enum PrimitiveDefaultValueMode
{
/**
* Default values of primitive types will be treated like any other value. Since there is no distinction,
- * any change to a primitive value will be marked as {@linkplain Node.State#CHANGED}.
+ * any change to a primitive value will be marked as {@linkplain in.th3iedkid.diff.node.Node.State#CHANGED}.
*/
ASSIGNED,
/**
* Default values of primitive types will be treated as if the property has not been set. The consequence of
* this is that a change from default value to something else will be marked as {@linkplain
- * Node.State#ADDED} and from something else to the default value as {@linkplain Node.State#REMOVED}.
+ * in.th3iedkid.diff.node.Node.State#ADDED} and from something else to the default value as {@linkplain in.th3iedkid.diff.node.Node.State#REMOVED}.
*/
UNASSIGNED
}
diff --git a/src/main/java/de/danielbechler/diff/DefaultNodeFactory.java b/src/main/java/in/th3iedkid/diff/DefaultNodeFactory.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/DefaultNodeFactory.java
rename to src/main/java/in/th3iedkid/diff/DefaultNodeFactory.java
index fef12510..f6d5c1ae
--- a/src/main/java/de/danielbechler/diff/DefaultNodeFactory.java
+++ b/src/main/java/in/th3iedkid/diff/DefaultNodeFactory.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
@SuppressWarnings("MethodMayBeStatic")
class DefaultNodeFactory
diff --git a/src/main/java/de/danielbechler/diff/Differ.java b/src/main/java/in/th3iedkid/diff/Differ.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/Differ.java
rename to src/main/java/in/th3iedkid/diff/Differ.java
index d4082f77..82fa35a6
--- a/src/main/java/de/danielbechler/diff/Differ.java
+++ b/src/main/java/in/th3iedkid/diff/Differ.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.node.Node;
/** @author Daniel Bechler */
interface Differ
diff --git a/src/main/java/de/danielbechler/diff/DifferDelegator.java b/src/main/java/in/th3iedkid/diff/DifferDelegator.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/main/java/de/danielbechler/diff/DifferDelegator.java
rename to src/main/java/in/th3iedkid/diff/DifferDelegator.java
index 6f347f53..c9c9a9a9
--- a/src/main/java/de/danielbechler/diff/DifferDelegator.java
+++ b/src/main/java/in/th3iedkid/diff/DifferDelegator.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
-import org.slf4j.*;
-
-import static de.danielbechler.diff.CircularReferenceDetector.*;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/** @author Daniel Bechler */
@SuppressWarnings("MethodMayBeStatic")
@@ -45,9 +45,9 @@ public DifferDelegator(final DifferFactory differFactory,
}
/**
- * Delegates the call to an appropriate {@link de.danielbechler.diff.Differ}.
+ * Delegates the call to an appropriate {@link Differ}.
*
- * @return A node representing the difference between the given {@link de.danielbechler.diff.Instances}.
+ * @return A node representing the difference between the given {@link Instances}.
*/
public Node delegate(final Node parentNode, final Instances instances)
{
@@ -75,7 +75,7 @@ private Node delegateWithCircularReferenceTracking(final Node parentNode, final
forgetInstances(instances);
}
}
- catch (CircularReferenceException e)
+ catch (CircularReferenceDetector.CircularReferenceException e)
{
node = newCircularNode(parentNode, instances, e.getPropertyPath());
logCircularReference(node.getPropertyPath());
diff --git a/src/main/java/de/danielbechler/diff/DifferFactory.java b/src/main/java/in/th3iedkid/diff/DifferFactory.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/main/java/de/danielbechler/diff/DifferFactory.java
rename to src/main/java/in/th3iedkid/diff/DifferFactory.java
index b009fb49..82d78644
--- a/src/main/java/de/danielbechler/diff/DifferFactory.java
+++ b/src/main/java/in/th3iedkid/diff/DifferFactory.java
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Assert;
+import in.th3iedkid.util.Classes;
-import java.util.*;
-
-import static de.danielbechler.util.Classes.*;
+import java.util.Collection;
+import java.util.Map;
/** @author Daniel Bechler */
public class DifferFactory
@@ -36,7 +36,7 @@ public DifferFactory(final Configuration configuration)
public Differ> createDiffer(final Class> type, final DifferDelegator delegator)
{
Assert.notNull(delegator, "delegator");
- if (isPrimitiveType(type))
+ if (Classes.isPrimitiveType(type))
{
return new PrimitiveDiffer(configuration);
}
diff --git a/src/main/java/de/danielbechler/diff/Instances.java b/src/main/java/in/th3iedkid/diff/Instances.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/Instances.java
rename to src/main/java/in/th3iedkid/diff/Instances.java
index ee255b05..249f2929
--- a/src/main/java/de/danielbechler/diff/Instances.java
+++ b/src/main/java/in/th3iedkid/diff/Instances.java
@@ -14,18 +14,23 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
-import de.danielbechler.util.Collections;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.RootAccessor;
+import in.th3iedkid.diff.accessor.TypeAwareAccessor;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Assert;
+import in.th3iedkid.util.Classes;
+import in.th3iedkid.util.Collections;
-import java.util.*;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
-import static de.danielbechler.util.Objects.*;
-import static de.danielbechler.util.Comparables.*;
+import static in.th3iedkid.util.Comparables.isEqualByComparison;
+import static in.th3iedkid.util.Objects.isEqual;
/** @author Daniel Bechler */
@SuppressWarnings({"UnusedDeclaration"})
diff --git a/src/main/java/de/danielbechler/diff/MapDiffer.java b/src/main/java/in/th3iedkid/diff/MapDiffer.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/main/java/de/danielbechler/diff/MapDiffer.java
rename to src/main/java/in/th3iedkid/diff/MapDiffer.java
index 29398727..d5a3e2d0
--- a/src/main/java/de/danielbechler/diff/MapDiffer.java
+++ b/src/main/java/in/th3iedkid/diff/MapDiffer.java
@@ -14,14 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
-import de.danielbechler.util.Collections;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.MapNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
+import in.th3iedkid.util.Collections;
-import java.util.*;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
/**
* Used to find differences between {@link Map Maps}
diff --git a/src/main/java/de/danielbechler/diff/MapNodeFactory.java b/src/main/java/in/th3iedkid/diff/MapNodeFactory.java
old mode 100644
new mode 100755
similarity index 86%
rename from src/main/java/de/danielbechler/diff/MapNodeFactory.java
rename to src/main/java/in/th3iedkid/diff/MapNodeFactory.java
index db901e2a..f89b9aa6
--- a/src/main/java/de/danielbechler/diff/MapNodeFactory.java
+++ b/src/main/java/in/th3iedkid/diff/MapNodeFactory.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.MapNode;
+import in.th3iedkid.diff.node.Node;
@SuppressWarnings("MethodMayBeStatic")
public class MapNodeFactory
diff --git a/src/main/java/de/danielbechler/diff/NodeInspector.java b/src/main/java/in/th3iedkid/diff/NodeInspector.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/main/java/de/danielbechler/diff/NodeInspector.java
rename to src/main/java/in/th3iedkid/diff/NodeInspector.java
index 9744eb4f..4f727e23
--- a/src/main/java/de/danielbechler/diff/NodeInspector.java
+++ b/src/main/java/in/th3iedkid/diff/NodeInspector.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.node.Node;
/** @author Daniel Bechler */
interface NodeInspector
@@ -36,7 +36,7 @@ interface NodeInspector
/**
* @return Returns true if the object represented by the given node should be compared via
* introspection. It must always return false if {@link
- * #isEqualsOnly(de.danielbechler.diff.node.Node)} returns true.
+ * #isEqualsOnly(in.th3iedkid.diff.node.Node)} returns true.
*/
boolean isIntrospectible(Node node);
}
diff --git a/src/main/java/de/danielbechler/diff/ObjectDiffer.java b/src/main/java/in/th3iedkid/diff/ObjectDiffer.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/ObjectDiffer.java
rename to src/main/java/in/th3iedkid/diff/ObjectDiffer.java
index 8942c257..a838b438
--- a/src/main/java/de/danielbechler/diff/ObjectDiffer.java
+++ b/src/main/java/in/th3iedkid/diff/ObjectDiffer.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
-import static de.danielbechler.diff.Configuration.CircularReferenceMatchingMode.*;
+import in.th3iedkid.diff.node.Node;
/**
* This is the entry point for all comparisons. It determines the type of the given objects and passes them to
@@ -83,11 +82,11 @@ public Configuration getConfiguration()
private static CircularReferenceDetectorFactory newCircularReferenceDetectorFactory(final Configuration configuration)
{
- if (configuration.getCircularReferenceMatchingMode() == EQUALS_METHOD)
+ if (configuration.getCircularReferenceMatchingMode() == Configuration.CircularReferenceMatchingMode.EQUALS_METHOD)
{
return CIRCULAR_REFERENCE_DETECTOR_WITH_EQUALS_METHOD_FACTORY;
}
- else if (configuration.getCircularReferenceMatchingMode() == EQUALITY_OPERATOR)
+ else if (configuration.getCircularReferenceMatchingMode() == Configuration.CircularReferenceMatchingMode.EQUALITY_OPERATOR)
{
return CIRCULAR_REFERENCE_DETECTOR_WITH_EQUALITY_OPERATOR_FACTORY;
}
diff --git a/src/main/java/de/danielbechler/diff/ObjectDifferFactory.java b/src/main/java/in/th3iedkid/diff/ObjectDifferFactory.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/main/java/de/danielbechler/diff/ObjectDifferFactory.java
rename to src/main/java/in/th3iedkid/diff/ObjectDifferFactory.java
index ca7c10fa..8205d936
--- a/src/main/java/de/danielbechler/diff/ObjectDifferFactory.java
+++ b/src/main/java/in/th3iedkid/diff/ObjectDifferFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
/**
* Creates new {@link ObjectDiffer} instances.
diff --git a/src/main/java/de/danielbechler/diff/PrimitiveDiffer.java b/src/main/java/in/th3iedkid/diff/PrimitiveDiffer.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/PrimitiveDiffer.java
rename to src/main/java/in/th3iedkid/diff/PrimitiveDiffer.java
index 1d5794f9..df9bb161
--- a/src/main/java/de/danielbechler/diff/PrimitiveDiffer.java
+++ b/src/main/java/in/th3iedkid/diff/PrimitiveDiffer.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
-import static de.danielbechler.diff.Configuration.PrimitiveDefaultValueMode.*;
+import static in.th3iedkid.diff.Configuration.PrimitiveDefaultValueMode.UNASSIGNED;
/** @author Daniel Bechler */
class PrimitiveDiffer implements Differ
diff --git a/src/main/java/de/danielbechler/diff/PropertyNodeFactory.java b/src/main/java/in/th3iedkid/diff/PropertyNodeFactory.java
old mode 100644
new mode 100755
similarity index 84%
rename from src/main/java/de/danielbechler/diff/PropertyNodeFactory.java
rename to src/main/java/in/th3iedkid/diff/PropertyNodeFactory.java
index 0fa271b7..b693b21b
--- a/src/main/java/de/danielbechler/diff/PropertyNodeFactory.java
+++ b/src/main/java/in/th3iedkid/diff/PropertyNodeFactory.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
class PropertyNodeFactory
{
diff --git a/src/main/java/de/danielbechler/diff/TestOnly.java b/src/main/java/in/th3iedkid/diff/TestOnly.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/TestOnly.java
rename to src/main/java/in/th3iedkid/diff/TestOnly.java
index 9fa0fa08..37838c87
--- a/src/main/java/de/danielbechler/diff/TestOnly.java
+++ b/src/main/java/in/th3iedkid/diff/TestOnly.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
/**
* A simple marker annotation to mark methods that are only needed for testing.
diff --git a/src/main/java/de/danielbechler/diff/accessor/AbstractAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/AbstractAccessor.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/main/java/de/danielbechler/diff/accessor/AbstractAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/AbstractAccessor.java
index 7262c2bb..18cb8317
--- a/src/main/java/de/danielbechler/diff/accessor/AbstractAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/AbstractAccessor.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import java.util.*;
+import java.util.Set;
+import java.util.TreeSet;
/** @author Daniel Bechler */
public abstract class AbstractAccessor implements Accessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/Accessor.java b/src/main/java/in/th3iedkid/diff/accessor/Accessor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/accessor/Accessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/Accessor.java
index b5807692..0af46dd4
--- a/src/main/java/de/danielbechler/diff/accessor/Accessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/Accessor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
/** @author Daniel Bechler */
public interface Accessor extends PropertyDescriptor
diff --git a/src/main/java/de/danielbechler/diff/accessor/CanonicalAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/CanonicalAccessor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/accessor/CanonicalAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/CanonicalAccessor.java
index e529e77b..2eb3cdb7
--- a/src/main/java/de/danielbechler/diff/accessor/CanonicalAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/CanonicalAccessor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
/** @author Daniel Bechler */
public interface CanonicalAccessor extends Accessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/CollectionItemAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/CollectionItemAccessor.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/main/java/de/danielbechler/diff/accessor/CollectionItemAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/CollectionItemAccessor.java
index b5b49fe3..5aaa0fb6
--- a/src/main/java/de/danielbechler/diff/accessor/CollectionItemAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/CollectionItemAccessor.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.path.*;
+import in.th3iedkid.diff.path.CollectionElement;
+import in.th3iedkid.diff.path.Element;
-import java.util.*;
+import java.util.Collection;
/** @author Daniel Bechler */
public class CollectionItemAccessor extends AbstractAccessor implements TypeAwareAccessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/MapEntryAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/MapEntryAccessor.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/main/java/de/danielbechler/diff/accessor/MapEntryAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/MapEntryAccessor.java
index 61b91158..cca912b1
--- a/src/main/java/de/danielbechler/diff/accessor/MapEntryAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/MapEntryAccessor.java
@@ -14,12 +14,14 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.MapElement;
+import in.th3iedkid.util.Assert;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
/** @author Daniel Bechler */
public final class MapEntryAccessor extends AbstractAccessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/PropertyAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/PropertyAccessor.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/main/java/de/danielbechler/diff/accessor/PropertyAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/PropertyAccessor.java
index 42a16588..98dfd72e
--- a/src/main/java/de/danielbechler/diff/accessor/PropertyAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/PropertyAccessor.java
@@ -14,15 +14,18 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
-
-import de.danielbechler.diff.accessor.exception.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
-import org.slf4j.*;
-
-import java.lang.annotation.*;
-import java.lang.reflect.*;
+package in.th3iedkid.diff.accessor;
+
+import in.th3iedkid.diff.accessor.exception.PropertyReadException;
+import in.th3iedkid.diff.accessor.exception.PropertyWriteException;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
import java.util.*;
/** @author Daniel Bechler */
diff --git a/src/main/java/de/danielbechler/diff/accessor/PropertyDescriptor.java b/src/main/java/in/th3iedkid/diff/accessor/PropertyDescriptor.java
old mode 100644
new mode 100755
similarity index 88%
rename from src/main/java/de/danielbechler/diff/accessor/PropertyDescriptor.java
rename to src/main/java/in/th3iedkid/diff/accessor/PropertyDescriptor.java
index 50cc094d..f318638e
--- a/src/main/java/de/danielbechler/diff/accessor/PropertyDescriptor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/PropertyDescriptor.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.path.*;
+import in.th3iedkid.diff.path.Element;
-import java.util.*;
+import java.util.Set;
/** @author Daniel Bechler */
public interface PropertyDescriptor
diff --git a/src/main/java/de/danielbechler/diff/accessor/RootAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/RootAccessor.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/accessor/RootAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/RootAccessor.java
index 36bea457..83ddb1a5
--- a/src/main/java/de/danielbechler/diff/accessor/RootAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/RootAccessor.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.path.*;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.RootElement;
/** @author Daniel Bechler */
public final class RootAccessor extends AbstractAccessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/TypeAwareAccessor.java b/src/main/java/in/th3iedkid/diff/accessor/TypeAwareAccessor.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/accessor/TypeAwareAccessor.java
rename to src/main/java/in/th3iedkid/diff/accessor/TypeAwareAccessor.java
index ac0140b4..23671738
--- a/src/main/java/de/danielbechler/diff/accessor/TypeAwareAccessor.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/TypeAwareAccessor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
/** @author Daniel Bechler */
public interface TypeAwareAccessor extends Accessor
diff --git a/src/main/java/de/danielbechler/diff/accessor/exception/ItemNotIndexedException.java b/src/main/java/in/th3iedkid/diff/accessor/exception/ItemNotIndexedException.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/accessor/exception/ItemNotIndexedException.java
rename to src/main/java/in/th3iedkid/diff/accessor/exception/ItemNotIndexedException.java
index 5788511b..cd0a1d8f
--- a/src/main/java/de/danielbechler/diff/accessor/exception/ItemNotIndexedException.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/exception/ItemNotIndexedException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor.exception;
+package in.th3iedkid.diff.accessor.exception;
/** @author Daniel Bechler */
public final class ItemNotIndexedException extends RuntimeException
diff --git a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyException.java b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyException.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/diff/accessor/exception/PropertyException.java
rename to src/main/java/in/th3iedkid/diff/accessor/exception/PropertyException.java
index 6cc920cd..ad1602b1
--- a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyException.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor.exception;
+package in.th3iedkid.diff.accessor.exception;
/** @author Daniel Bechler */
public class PropertyException extends RuntimeException
diff --git a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyReadException.java b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyReadException.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/accessor/exception/PropertyReadException.java
rename to src/main/java/in/th3iedkid/diff/accessor/exception/PropertyReadException.java
index fb8cb34c..fde68db4
--- a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyReadException.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyReadException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor.exception;
+package in.th3iedkid.diff.accessor.exception;
/** @author Daniel Bechler */
public class PropertyReadException extends PropertyException
diff --git a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyWriteException.java b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyWriteException.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/accessor/exception/PropertyWriteException.java
rename to src/main/java/in/th3iedkid/diff/accessor/exception/PropertyWriteException.java
index 15ff4361..7ea63d19
--- a/src/main/java/de/danielbechler/diff/accessor/exception/PropertyWriteException.java
+++ b/src/main/java/in/th3iedkid/diff/accessor/exception/PropertyWriteException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor.exception;
+package in.th3iedkid.diff.accessor.exception;
/** @author Daniel Bechler */
public class PropertyWriteException extends PropertyException
diff --git a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffAnnotation.java b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffAnnotation.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/annotation/ObjectDiffAnnotation.java
rename to src/main/java/in/th3iedkid/diff/annotation/ObjectDiffAnnotation.java
index bbe16bd5..a5be91ef
--- a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffAnnotation.java
+++ b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffAnnotation.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.annotation;
+package in.th3iedkid.diff.annotation;
import java.lang.annotation.*;
diff --git a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffEqualsOnlyType.java b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffEqualsOnlyType.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/annotation/ObjectDiffEqualsOnlyType.java
rename to src/main/java/in/th3iedkid/diff/annotation/ObjectDiffEqualsOnlyType.java
index dce74951..cdc191da
--- a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffEqualsOnlyType.java
+++ b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffEqualsOnlyType.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.annotation;
+package in.th3iedkid.diff.annotation;
import java.lang.annotation.*;
diff --git a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffProperty.java b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffProperty.java
old mode 100644
new mode 100755
similarity index 84%
rename from src/main/java/de/danielbechler/diff/annotation/ObjectDiffProperty.java
rename to src/main/java/in/th3iedkid/diff/annotation/ObjectDiffProperty.java
index d592a19b..013be6eb
--- a/src/main/java/de/danielbechler/diff/annotation/ObjectDiffProperty.java
+++ b/src/main/java/in/th3iedkid/diff/annotation/ObjectDiffProperty.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.annotation;
+package in.th3iedkid.diff.annotation;
import java.lang.annotation.*;
@@ -31,14 +31,14 @@
public @interface ObjectDiffProperty
{
/**
- * Causes the {@link de.danielbechler.diff.Differ Differs} to skip the marked property and all its children.
+ * Causes the {@link in.th3iedkid.differ Differs} to skip the marked property and all its children.
*
* @return true if the property should be ignored.
*/
public boolean ignore() default false;
/**
- * Causes the {@link de.danielbechler.diff.Differ Differs} to compare the object by using the {@link Object#equals(Object)}
+ * Causes the {@link in.th3iedkid.differ Differs} to compare the object by using the {@link Object#equals(Object)}
* method instead of introspection.
*
* @return true if the property should be compared via {@link Object#equals(Object)}.
diff --git a/src/main/java/de/danielbechler/diff/example/CanonicalAccessorExample.java b/src/main/java/in/th3iedkid/diff/example/CanonicalAccessorExample.java
old mode 100644
new mode 100755
similarity index 88%
rename from src/main/java/de/danielbechler/diff/example/CanonicalAccessorExample.java
rename to src/main/java/in/th3iedkid/diff/example/CanonicalAccessorExample.java
index 6c5d454d..ae079534
--- a/src/main/java/de/danielbechler/diff/example/CanonicalAccessorExample.java
+++ b/src/main/java/in/th3iedkid/diff/example/CanonicalAccessorExample.java
@@ -14,15 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff.example;
+package in.th3iedkid.diff.example;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.NodeHierarchyVisitor;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
-import static java.util.Arrays.*;
+import static java.util.Arrays.asList;
/** @author Daniel Bechler */
class CanonicalAccessorExample
@@ -53,9 +54,9 @@ public static void main(final String[] args)
Output:
- / ===> DefaultNode(state=CHANGED, type=de.danielbechler.diff.example.CanonicalAccessorExample.AddressBook, 1 child, accessed via root element)
+ / ===> DefaultNode(state=CHANGED, type=CanonicalAccessorExample.AddressBook, 1 child, accessed via root element)
/contacts ===> CollectionNode(state=CHANGED, type=java.util.List, 1 child, accessed via property 'contacts')
- /contacts[Contact{name='Walter White'}] ===> DefaultNode(state=CHANGED, type=de.danielbechler.diff.example.CanonicalAccessorExample.Contact, 1 child, accessed via collection item [Contact{name='Walter White'}])
+ /contacts[Contact{name='Walter White'}] ===> DefaultNode(state=CHANGED, type=CanonicalAccessorExample.Contact, 1 child, accessed via collection item [Contact{name='Walter White'}])
/contacts[Contact{name='Walter White'}]/nickname ===> DefaultNode(state=ADDED, type=java.lang.String, no children, accessed via property 'nickname')
*/
diff --git a/src/main/java/de/danielbechler/diff/example/IgnoreExample.java b/src/main/java/in/th3iedkid/diff/example/IgnoreExample.java
old mode 100644
new mode 100755
similarity index 80%
rename from src/main/java/de/danielbechler/diff/example/IgnoreExample.java
rename to src/main/java/in/th3iedkid/diff/example/IgnoreExample.java
index 6b0a6e7f..2b618f95
--- a/src/main/java/de/danielbechler/diff/example/IgnoreExample.java
+++ b/src/main/java/in/th3iedkid/diff/example/IgnoreExample.java
@@ -1,10 +1,11 @@
-package de.danielbechler.diff.example;
-
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.annotation.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
+package in.th3iedkid.diff.example;
+
+import in.th3iedkid.diff.Configuration;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
/** @author Daniel Bechler */
@SuppressWarnings("UnusedDeclaration")
diff --git a/src/main/java/de/danielbechler/diff/example/MapEntryValueAccessExample.java b/src/main/java/in/th3iedkid/diff/example/MapEntryValueAccessExample.java
old mode 100644
new mode 100755
similarity index 86%
rename from src/main/java/de/danielbechler/diff/example/MapEntryValueAccessExample.java
rename to src/main/java/in/th3iedkid/diff/example/MapEntryValueAccessExample.java
index 1dd7ffd3..ee8b8571
--- a/src/main/java/de/danielbechler/diff/example/MapEntryValueAccessExample.java
+++ b/src/main/java/in/th3iedkid/diff/example/MapEntryValueAccessExample.java
@@ -14,14 +14,15 @@
* limitations under the License.
*/
-package de.danielbechler.diff.example;
+package in.th3iedkid.diff.example;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.MapElement;
+import in.th3iedkid.diff.visitor.Visit;
-import java.util.*;
+import java.util.Map;
+import java.util.TreeMap;
/** @author Daniel Bechler */
class MapEntryValueAccessExample
diff --git a/src/main/java/de/danielbechler/diff/example/RuntimeTypeResolutionExample.java b/src/main/java/in/th3iedkid/diff/example/RuntimeTypeResolutionExample.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/example/RuntimeTypeResolutionExample.java
rename to src/main/java/in/th3iedkid/diff/example/RuntimeTypeResolutionExample.java
index 332f5872..38b0e91b
--- a/src/main/java/de/danielbechler/diff/example/RuntimeTypeResolutionExample.java
+++ b/src/main/java/in/th3iedkid/diff/example/RuntimeTypeResolutionExample.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.example;
+package in.th3iedkid.diff.example;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
/** @author Daniel Bechler */
public class RuntimeTypeResolutionExample
diff --git a/src/main/java/de/danielbechler/diff/example/SimpleNodeExample.java b/src/main/java/in/th3iedkid/diff/example/SimpleNodeExample.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/example/SimpleNodeExample.java
rename to src/main/java/in/th3iedkid/diff/example/SimpleNodeExample.java
index b3151596..cda6dd2f
--- a/src/main/java/de/danielbechler/diff/example/SimpleNodeExample.java
+++ b/src/main/java/in/th3iedkid/diff/example/SimpleNodeExample.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.example;
+package in.th3iedkid.diff.example;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.NodeHierarchyVisitor;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
/** @author Daniel Bechler */
class SimpleNodeExample
diff --git a/src/main/java/de/danielbechler/diff/introspect/Introspector.java b/src/main/java/in/th3iedkid/diff/introspect/Introspector.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/introspect/Introspector.java
rename to src/main/java/in/th3iedkid/diff/introspect/Introspector.java
index 4fc98c5a..63b1de3a
--- a/src/main/java/de/danielbechler/diff/introspect/Introspector.java
+++ b/src/main/java/in/th3iedkid/diff/introspect/Introspector.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.introspect;
+package in.th3iedkid.diff.introspect;
-import de.danielbechler.diff.accessor.*;
+import in.th3iedkid.diff.accessor.Accessor;
/**
* Resolves the accessors of a given type.
diff --git a/src/main/java/de/danielbechler/diff/introspect/StandardIntrospector.java b/src/main/java/in/th3iedkid/diff/introspect/StandardIntrospector.java
old mode 100644
new mode 100755
similarity index 82%
rename from src/main/java/de/danielbechler/diff/introspect/StandardIntrospector.java
rename to src/main/java/in/th3iedkid/diff/introspect/StandardIntrospector.java
index 2e958cc7..94574471
--- a/src/main/java/de/danielbechler/diff/introspect/StandardIntrospector.java
+++ b/src/main/java/in/th3iedkid/diff/introspect/StandardIntrospector.java
@@ -14,25 +14,29 @@
* limitations under the License.
*/
-package de.danielbechler.diff.introspect;
+package in.th3iedkid.diff.introspect;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.annotation.*;
-import de.danielbechler.util.*;
-import de.danielbechler.util.Collections;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.annotation.ObjectDiffEqualsOnlyType;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
+import in.th3iedkid.util.Assert;
+import in.th3iedkid.util.Exceptions;
-import java.beans.*;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
-import java.lang.reflect.*;
-import java.util.*;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
/**
* Resolves the accessors of a given type by using the standard Java {@link Introspector}.
*
* @author Daniel Bechler
*/
-public class StandardIntrospector implements de.danielbechler.diff.introspect.Introspector
+public class StandardIntrospector implements in.th3iedkid.diff.introspect.Introspector
{
public Iterable introspect(final Class> type)
{
@@ -98,7 +102,7 @@ private static void handleObjectDiffPropertyAnnotation(final Method readMethod,
{
propertyAccessor.setEqualsOnly(annotation.equalsOnly());
propertyAccessor.setIgnored(annotation.ignore());
- propertyAccessor.setCategories(Collections.setOf(annotation.categories()));
+ propertyAccessor.setCategories(in.th3iedkid.util.Collections.setOf(annotation.categories()));
}
}
diff --git a/src/main/java/de/danielbechler/diff/node/CollectionNode.java b/src/main/java/in/th3iedkid/diff/node/CollectionNode.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/main/java/de/danielbechler/diff/node/CollectionNode.java
rename to src/main/java/in/th3iedkid/diff/node/CollectionNode.java
index d3f694c6..1ac06349
--- a/src/main/java/de/danielbechler/diff/node/CollectionNode.java
+++ b/src/main/java/in/th3iedkid/diff/node/CollectionNode.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
+package in.th3iedkid.diff.node;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.visitor.AbstractFilteringVisitor;
+import in.th3iedkid.diff.visitor.StateFilteringVisitor;
-import java.util.*;
+import java.util.Collection;
/** @author Daniel Bechler */
@SuppressWarnings("UnusedDeclaration")
diff --git a/src/main/java/de/danielbechler/diff/node/DefaultNode.java b/src/main/java/in/th3iedkid/diff/node/DefaultNode.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/main/java/de/danielbechler/diff/node/DefaultNode.java
rename to src/main/java/in/th3iedkid/diff/node/DefaultNode.java
index 024a3f41..08a802b8
--- a/src/main/java/de/danielbechler/diff/node/DefaultNode.java
+++ b/src/main/java/in/th3iedkid/diff/node/DefaultNode.java
@@ -14,19 +14,25 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
-
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import de.danielbechler.util.*;
-
-import java.lang.annotation.*;
+package in.th3iedkid.diff.node;
+
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.accessor.RootAccessor;
+import in.th3iedkid.diff.accessor.TypeAwareAccessor;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.PropertyVisitor;
+import in.th3iedkid.diff.visitor.StopVisitationException;
+import in.th3iedkid.diff.visitor.Visit;
+import in.th3iedkid.util.Assert;
+
+import java.lang.annotation.Annotation;
import java.util.*;
-import java.util.Collections;
-import java.util.concurrent.atomic.*;
+import java.util.concurrent.atomic.AtomicBoolean;
-import static java.util.Collections.*;
+import static java.util.Collections.unmodifiableSet;
/** @author Daniel Bechler */
public class DefaultNode implements Node
diff --git a/src/main/java/de/danielbechler/diff/node/MapNode.java b/src/main/java/in/th3iedkid/diff/node/MapNode.java
old mode 100644
new mode 100755
similarity index 86%
rename from src/main/java/de/danielbechler/diff/node/MapNode.java
rename to src/main/java/in/th3iedkid/diff/node/MapNode.java
index 3898ae25..d5ec027f
--- a/src/main/java/de/danielbechler/diff/node/MapNode.java
+++ b/src/main/java/in/th3iedkid/diff/node/MapNode.java
@@ -14,12 +14,14 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
+package in.th3iedkid.diff.node;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.accessor.exception.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.MapEntryAccessor;
+import in.th3iedkid.diff.accessor.exception.ItemNotIndexedException;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
/** @author Daniel Bechler */
public class MapNode extends DefaultNode
diff --git a/src/main/java/de/danielbechler/diff/node/Node.java b/src/main/java/in/th3iedkid/diff/node/Node.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/main/java/de/danielbechler/diff/node/Node.java
rename to src/main/java/in/th3iedkid/diff/node/Node.java
index 90d0c6e1..8c6ff4c4
--- a/src/main/java/de/danielbechler/diff/node/Node.java
+++ b/src/main/java/in/th3iedkid/diff/node/Node.java
@@ -14,14 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
+package in.th3iedkid.diff.node;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.accessor.CanonicalAccessor;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.Visit;
-import java.lang.annotation.*;
-import java.util.*;
+import java.lang.annotation.Annotation;
+import java.util.Collection;
+import java.util.Set;
/**
* Represents a part of an object. It could be the object itself, one of its properties, an item in a
diff --git a/src/main/java/de/danielbechler/diff/path/CollectionElement.java b/src/main/java/in/th3iedkid/diff/path/CollectionElement.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/path/CollectionElement.java
rename to src/main/java/in/th3iedkid/diff/path/CollectionElement.java
index 1917836b..3cd0f567
--- a/src/main/java/de/danielbechler/diff/path/CollectionElement.java
+++ b/src/main/java/in/th3iedkid/diff/path/CollectionElement.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Strings;
/** @author Daniel Bechler */
public final class CollectionElement extends Element
diff --git a/src/main/java/de/danielbechler/diff/path/Element.java b/src/main/java/in/th3iedkid/diff/path/Element.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/main/java/de/danielbechler/diff/path/Element.java
rename to src/main/java/in/th3iedkid/diff/path/Element.java
index 371ae393..db55f09e
--- a/src/main/java/de/danielbechler/diff/path/Element.java
+++ b/src/main/java/in/th3iedkid/diff/path/Element.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
/**
* Serves mainly as marker class and enforces the proper implementation of hashCode(), equals() and toString() for all
diff --git a/src/main/java/de/danielbechler/diff/path/MapElement.java b/src/main/java/in/th3iedkid/diff/path/MapElement.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/path/MapElement.java
rename to src/main/java/in/th3iedkid/diff/path/MapElement.java
index d301aa9d..646eac18
--- a/src/main/java/de/danielbechler/diff/path/MapElement.java
+++ b/src/main/java/in/th3iedkid/diff/path/MapElement.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Strings;
/** @author Daniel Bechler */
public final class MapElement extends Element
diff --git a/src/main/java/de/danielbechler/diff/path/NamedPropertyElement.java b/src/main/java/in/th3iedkid/diff/path/NamedPropertyElement.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/path/NamedPropertyElement.java
rename to src/main/java/in/th3iedkid/diff/path/NamedPropertyElement.java
index 651cbf70..11d24320
--- a/src/main/java/de/danielbechler/diff/path/NamedPropertyElement.java
+++ b/src/main/java/in/th3iedkid/diff/path/NamedPropertyElement.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public final class NamedPropertyElement extends Element
diff --git a/src/main/java/de/danielbechler/diff/path/PropertyPath.java b/src/main/java/in/th3iedkid/diff/path/PropertyPath.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/main/java/de/danielbechler/diff/path/PropertyPath.java
rename to src/main/java/in/th3iedkid/diff/path/PropertyPath.java
index 21623a11..9ad90d5a
--- a/src/main/java/de/danielbechler/diff/path/PropertyPath.java
+++ b/src/main/java/in/th3iedkid/diff/path/PropertyPath.java
@@ -14,12 +14,14 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Assert;
-import java.util.*;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
/** @author Daniel Bechler */
public final class PropertyPath
diff --git a/src/main/java/de/danielbechler/diff/path/RootElement.java b/src/main/java/in/th3iedkid/diff/path/RootElement.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/diff/path/RootElement.java
rename to src/main/java/in/th3iedkid/diff/path/RootElement.java
index 598986d9..9b4fef24
--- a/src/main/java/de/danielbechler/diff/path/RootElement.java
+++ b/src/main/java/in/th3iedkid/diff/path/RootElement.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
/** @author Daniel Bechler */
public final class RootElement extends Element
diff --git a/src/main/java/de/danielbechler/diff/visitor/AbstractFilteringVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/AbstractFilteringVisitor.java
old mode 100644
new mode 100755
similarity index 90%
rename from src/main/java/de/danielbechler/diff/visitor/AbstractFilteringVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/AbstractFilteringVisitor.java
index cedb073d..18d0ab94
--- a/src/main/java/de/danielbechler/diff/visitor/AbstractFilteringVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/AbstractFilteringVisitor.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.node.Node;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
/** @author Daniel Bechler */
public abstract class AbstractFilteringVisitor implements Node.Visitor
diff --git a/src/main/java/de/danielbechler/diff/visitor/CategoryFilteringVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/CategoryFilteringVisitor.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/main/java/de/danielbechler/diff/visitor/CategoryFilteringVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/CategoryFilteringVisitor.java
index c011cda1..f923276a
--- a/src/main/java/de/danielbechler/diff/visitor/CategoryFilteringVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/CategoryFilteringVisitor.java
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.Collections;
+import in.th3iedkid.diff.node.Node;
-import java.util.*;
+import java.util.Collection;
+import java.util.TreeSet;
/** @author Daniel Bechler */
@SuppressWarnings("UnusedDeclaration")
@@ -54,13 +54,13 @@ protected void onDismiss(final Node node, final Visit visit)
@SuppressWarnings({"TypeMayBeWeakened"})
private boolean isExcluded(final Node node)
{
- return Collections.containsAny(node.getCategories(), exclude);
+ return in.th3iedkid.util.Collections.containsAny(node.getCategories(), exclude);
}
@SuppressWarnings({"TypeMayBeWeakened"})
private boolean isIncluded(final Node node)
{
- return Collections.containsAny(node.getCategories(), include);
+ return in.th3iedkid.util.Collections.containsAny(node.getCategories(), include);
}
public final CategoryFilteringVisitor include(final String category)
diff --git a/src/main/java/de/danielbechler/diff/visitor/NodeHierarchyVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/NodeHierarchyVisitor.java
old mode 100644
new mode 100755
similarity index 90%
rename from src/main/java/de/danielbechler/diff/visitor/NodeHierarchyVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/NodeHierarchyVisitor.java
index be8385ef..abb1e9f6
--- a/src/main/java/de/danielbechler/diff/visitor/NodeHierarchyVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/NodeHierarchyVisitor.java
@@ -14,14 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
-
-import java.lang.Override;
-import java.lang.String;
-import java.lang.SuppressWarnings;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Strings;
/**
* Prints the hierarchy of the object graph in a human-readable form.
diff --git a/src/main/java/de/danielbechler/diff/visitor/PrintingVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/PrintingVisitor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/visitor/PrintingVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/PrintingVisitor.java
index 461f43f6..8564637b
--- a/src/main/java/de/danielbechler/diff/visitor/PrintingVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/PrintingVisitor.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Strings;
/** @author Daniel Bechler */
@SuppressWarnings({"MethodMayBeStatic"})
diff --git a/src/main/java/de/danielbechler/diff/visitor/PropertyVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/PropertyVisitor.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/main/java/de/danielbechler/diff/visitor/PropertyVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/PropertyVisitor.java
index ccd4d279..0203f94e
--- a/src/main/java/de/danielbechler/diff/visitor/PropertyVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/PropertyVisitor.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public class PropertyVisitor implements Node.Visitor
diff --git a/src/main/java/de/danielbechler/diff/visitor/StateFilteringVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/StateFilteringVisitor.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/main/java/de/danielbechler/diff/visitor/StateFilteringVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/StateFilteringVisitor.java
index 9046d6ed..69b5b2c7
--- a/src/main/java/de/danielbechler/diff/visitor/StateFilteringVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/StateFilteringVisitor.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public class StateFilteringVisitor extends AbstractFilteringVisitor
diff --git a/src/main/java/de/danielbechler/diff/visitor/StopVisitationException.java b/src/main/java/in/th3iedkid/diff/visitor/StopVisitationException.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/main/java/de/danielbechler/diff/visitor/StopVisitationException.java
rename to src/main/java/in/th3iedkid/diff/visitor/StopVisitationException.java
index e16120b5..55454525
--- a/src/main/java/de/danielbechler/diff/visitor/StopVisitationException.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/StopVisitationException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
/** @author Daniel Bechler */
public final class StopVisitationException extends RuntimeException
diff --git a/src/main/java/de/danielbechler/diff/visitor/ToMapPrintingVisitor.java b/src/main/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitor.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/main/java/de/danielbechler/diff/visitor/ToMapPrintingVisitor.java
rename to src/main/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitor.java
index dc128f62..1ffbb354
--- a/src/main/java/de/danielbechler/diff/visitor/ToMapPrintingVisitor.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitor.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
-import java.util.*;
+import java.util.LinkedHashMap;
+import java.util.Map;
/**
* This visitor generates the same output as the {@link PrintingVisitor}, but instead of printing it to
diff --git a/src/main/java/de/danielbechler/diff/visitor/Visit.java b/src/main/java/in/th3iedkid/diff/visitor/Visit.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/diff/visitor/Visit.java
rename to src/main/java/in/th3iedkid/diff/visitor/Visit.java
index 136e6225..8bed7dfb
--- a/src/main/java/de/danielbechler/diff/visitor/Visit.java
+++ b/src/main/java/in/th3iedkid/diff/visitor/Visit.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
/** @author Daniel Bechler */
public final class Visit
diff --git a/src/main/java/de/danielbechler/merge/ObjectMerger.java b/src/main/java/in/th3iedkid/merge/ObjectMerger.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/main/java/de/danielbechler/merge/ObjectMerger.java
rename to src/main/java/in/th3iedkid/merge/ObjectMerger.java
index fc68c158..02421c89
--- a/src/main/java/de/danielbechler/merge/ObjectMerger.java
+++ b/src/main/java/in/th3iedkid/merge/ObjectMerger.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.merge;
+package in.th3iedkid.merge;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.Visit;
/**
* Careful: This class has not yet been tested very thoroughly and serves more as an example for your own
diff --git a/src/main/java/de/danielbechler/util/Assert.java b/src/main/java/in/th3iedkid/util/Assert.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/main/java/de/danielbechler/util/Assert.java
rename to src/main/java/in/th3iedkid/util/Assert.java
index cb57b74a..43e675f9
--- a/src/main/java/de/danielbechler/util/Assert.java
+++ b/src/main/java/in/th3iedkid/util/Assert.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
-import java.util.*;
+import java.util.Collection;
/** @author Daniel Bechler */
public class Assert
diff --git a/src/main/java/de/danielbechler/util/Classes.java b/src/main/java/in/th3iedkid/util/Classes.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/util/Classes.java
rename to src/main/java/in/th3iedkid/util/Classes.java
index 187a9901..f4f70973
--- a/src/main/java/de/danielbechler/util/Classes.java
+++ b/src/main/java/in/th3iedkid/util/Classes.java
@@ -14,14 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
-import org.slf4j.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import java.io.*;
-import java.lang.reflect.*;
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
import java.math.BigDecimal;
-import java.net.*;
+import java.net.URI;
+import java.net.URL;
import java.util.*;
/** @author Daniel Bechler */
diff --git a/src/main/java/de/danielbechler/util/Collections.java b/src/main/java/in/th3iedkid/util/Collections.java
old mode 100644
new mode 100755
similarity index 98%
rename from src/main/java/de/danielbechler/util/Collections.java
rename to src/main/java/in/th3iedkid/util/Collections.java
index 8463af49..8925386b
--- a/src/main/java/de/danielbechler/util/Collections.java
+++ b/src/main/java/in/th3iedkid/util/Collections.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
import java.util.*;
diff --git a/src/main/java/de/danielbechler/util/Comparables.java b/src/main/java/in/th3iedkid/util/Comparables.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/util/Comparables.java
rename to src/main/java/in/th3iedkid/util/Comparables.java
index 2cc11976..a6d51bd6
--- a/src/main/java/de/danielbechler/util/Comparables.java
+++ b/src/main/java/in/th3iedkid/util/Comparables.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
/** @author Daniel Bechler */
public class Comparables
diff --git a/src/main/java/de/danielbechler/util/Exceptions.java b/src/main/java/in/th3iedkid/util/Exceptions.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/util/Exceptions.java
rename to src/main/java/in/th3iedkid/util/Exceptions.java
index fe8c71d2..81c59109
--- a/src/main/java/de/danielbechler/util/Exceptions.java
+++ b/src/main/java/in/th3iedkid/util/Exceptions.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
/** @author Daniel Bechler */
public class Exceptions
diff --git a/src/main/java/de/danielbechler/util/Objects.java b/src/main/java/in/th3iedkid/util/Objects.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/util/Objects.java
rename to src/main/java/in/th3iedkid/util/Objects.java
index cbd50588..f891320b
--- a/src/main/java/de/danielbechler/util/Objects.java
+++ b/src/main/java/in/th3iedkid/util/Objects.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
/** @author Daniel Bechler */
public class Objects
diff --git a/src/main/java/de/danielbechler/util/Strings.java b/src/main/java/in/th3iedkid/util/Strings.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/main/java/de/danielbechler/util/Strings.java
rename to src/main/java/in/th3iedkid/util/Strings.java
index b5d29b53..76b4a0c5
--- a/src/main/java/de/danielbechler/util/Strings.java
+++ b/src/main/java/in/th3iedkid/util/Strings.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.util;
+package in.th3iedkid.util;
-import java.util.*;
-import java.util.regex.*;
+import java.util.Collection;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/** @author Daniel Bechler */
public class Strings
diff --git a/src/test/java/de/danielbechler/diff/CollectionDifferShould.java b/src/test/java/de/danielbechler/diff/CollectionDifferShould.java
deleted file mode 100644
index 5c67395e..00000000
--- a/src/test/java/de/danielbechler/diff/CollectionDifferShould.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2012 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff;
-
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import org.fest.assertions.api.*;
-import org.mockito.*;
-import org.testng.annotations.*;
-
-import java.util.*;
-
-import static java.util.Arrays.*;
-import static java.util.Collections.*;
-import static org.mockito.Mockito.*;
-
-/** @author Daniel Bechler */
-public class CollectionDifferShould
-{
- private CollectionDiffer collectionDiffer;
-
- @Mock private NodeInspector nodeInspector;
- @Mock private DifferDelegator delegator;
- @Mock private CollectionNodeFactory collectionNodeFactory;
- @Mock private CollectionNode collectionNode;
- @Mock private Node collectionItemNode;
- @Mock private Instances instances;
- @Mock private Instances itemInstances;
- @Mock private CollectionItemAccessorFactory collectionItemAccessorFactory;
-
- @BeforeMethod
- public void setUp() throws Exception
- {
- MockitoAnnotations.initMocks(this);
- collectionDiffer = new CollectionDiffer(delegator, nodeInspector);
- collectionDiffer.setCollectionNodeFactory(collectionNodeFactory);
- collectionDiffer.setCollectionItemAccessorFactory(collectionItemAccessorFactory);
- when(collectionNodeFactory.create(Node.ROOT, instances)).thenReturn(collectionNode);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void fail_if_constructed_without_delegator()
- {
- new CollectionDiffer(null, nodeInspector);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void fail_if_constructed_without_configuration()
- {
- new CollectionDiffer(delegator, null);
- }
-
- @Test
- public void return_untouched_node_if_base_and_working_are_the_same_instance()
- {
- when(instances.areSame()).thenReturn(true);
- compare();
- verify(collectionNode).setState(Node.State.UNTOUCHED);
- }
-
- @Test
- public void return_added_node_if_working_is_not_null_and_base_is_null() throws Exception
- {
- when(instances.hasBeenAdded()).thenReturn(true);
- when(instances.getWorking(Collection.class)).thenReturn(emptyList());
- compare();
- verify(collectionNode).setState(Node.State.ADDED);
- }
-
- @Test(dependsOnMethods = "return_added_node_if_working_is_not_null_and_base_is_null")
- public void delegate_items_of_added_collection_to_delegator()
- {
- when(instances.hasBeenAdded()).thenReturn(true);
- when(instances.getWorking(Collection.class)).thenReturn(asList("foo"));
- when(instances.access(any(CollectionItemAccessor.class))).thenReturn(itemInstances); // TODO get rid of any
- when(delegator.delegate(collectionNode, itemInstances)).thenReturn(collectionItemNode);
- when(nodeInspector.isReturnable(collectionItemNode)).thenReturn(true);
- compare();
- verify(collectionNode).addChild(collectionItemNode);
- }
-
- @Test
- public void return_ignored_node_if_property_is_ignored() throws Exception
- {
- when(nodeInspector.isIgnored(collectionNode)).thenReturn(true);
- compare();
- verify(collectionNode).setState(Node.State.IGNORED);
- }
-
- @Test
- public void return_removed_node_if_working_is_null_and_base_is_not_null() throws Exception
- {
- when(instances.hasBeenRemoved()).thenReturn(true);
- when(instances.getBase(Collection.class)).thenReturn(emptyList());
- compare();
- verify(collectionNode).setState(Node.State.REMOVED);
- }
-
- @Test
- public void compare_only_via_equals_if_equals_only_is_enabled()
- {
- when(nodeInspector.isEqualsOnly(collectionNode)).thenReturn(true);
- when(instances.areEqual()).thenReturn(true);
- compare();
- verify(collectionNode).setState(Node.State.UNTOUCHED);
- }
-
- @Test
- public void detect_changes_if_equals_only_is_enabled()
- {
- when(nodeInspector.isEqualsOnly(collectionNode)).thenReturn(true);
- compare();
- verify(collectionNode).setState(Node.State.CHANGED);
- }
-
- private void compare()
- {
- final CollectionNode node = collectionDiffer.compare(Node.ROOT, instances);
- Assertions.assertThat(node).isSameAs(collectionNode);
- }
-
- @Test
- public void delegate_items_of_removed_collection_to_delegator()
- {
- when(instances.hasBeenRemoved()).thenReturn(true);
- when(instances.getBase(Collection.class)).thenReturn(asList("foo"));
- when(instances.access(any(CollectionItemAccessor.class))).thenReturn(itemInstances); // TODO get rid of any
- when(delegator.delegate(collectionNode, itemInstances)).thenReturn(collectionItemNode);
- when(nodeInspector.isReturnable(collectionItemNode)).thenReturn(true);
- compare();
- verify(collectionNode).addChild(collectionItemNode);
- }
-
- @Test
- public void delegate_all_items_to_delegator_on_deep_comparison()
- {
- when(instances.getWorking(Collection.class)).thenReturn(asList("foo", "bar"));
- when(instances.getBase(Collection.class)).thenReturn(asList("foo", "foobar"));
-
- final Node fooNode = whenDelegatorGetsCalledWithInstancesForItem("foo");
- final Node barNode = whenDelegatorGetsCalledWithInstancesForItem("bar");
- final Node foobarNode = whenDelegatorGetsCalledWithInstancesForItem("foobar");
-
- when(nodeInspector.isReturnable(any(Node.class))).thenReturn(true);
-
- compare();
-
- verify(collectionNode).addChild(fooNode);
- verify(collectionNode).addChild(barNode);
- verify(collectionNode).addChild(foobarNode);
- verifyNoMoreInteractions(collectionNode);
- }
-
- private Node whenDelegatorGetsCalledWithInstancesForItem(final String item)
- {
- final CollectionItemAccessor fooAccessor = mock(CollectionItemAccessor.class);
- when(collectionItemAccessorFactory.createAccessorForItem(item)).thenReturn(fooAccessor);
-
- final Instances fooInstances = mock(Instances.class);
- when(instances.access(fooAccessor)).thenReturn(fooInstances);
-
- final Node fooNode = mock(Node.class);
- when(delegator.delegate(collectionNode, fooInstances)).thenReturn(fooNode);
-
- return fooNode;
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/DifferDelegatorShould.java b/src/test/java/de/danielbechler/diff/DifferDelegatorShould.java
deleted file mode 100644
index d5e00acd..00000000
--- a/src/test/java/de/danielbechler/diff/DifferDelegatorShould.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2013 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff;
-
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import org.mockito.Mock;
-import org.mockito.invocation.*;
-import org.mockito.stubbing.*;
-import org.testng.annotations.*;
-
-import static org.fest.assertions.api.Assertions.*;
-import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
-
-/** @author Daniel Bechler */
-public class DifferDelegatorShould
-{
- @Mock
- private DifferFactory differFactory;
- @Mock
- private Accessor accessor;
- @Mock
- private CircularReferenceDetectorFactory circularReferenceDetectorFactory;
- @Mock
- private CircularReferenceDetector circularReferenceDetector;
- private Instances instances;
- private DifferDelegator differDelegator;
-
- @BeforeMethod
- public void setUp() throws Exception
- {
- initMocks(this);
-
- when(circularReferenceDetectorFactory.create()).thenReturn(circularReferenceDetector);
-
- differDelegator = new DifferDelegator(differFactory, circularReferenceDetectorFactory);
- }
-
- @SuppressWarnings("unchecked")
- private void given_the_delegated_node_is_circular(final PropertyPath circularStartPath)
- {
- instances = mock(Instances.class);
- differDelegator = new DifferDelegator(differFactory, circularReferenceDetectorFactory)
- {
- @Override
- protected void rememberInstances(final Node parentNode, final Instances instances)
- {
- throw new CircularReferenceDetector.CircularReferenceException(circularStartPath);
- }
- };
- when(instances.getSourceAccessor()).thenReturn(RootAccessor.getInstance());
- when(instances.getType()).then(returnType(Object.class));
- when(differFactory.createDiffer(ObjectWithCircularReference.class, differDelegator)).thenReturn(mock(Differ.class));
- }
-
- @Test
- public void assign_the_circular_start_path_if_the_delegated_node_is_circular() throws Exception
- {
- final PropertyPath circularStartPath = PropertyPath.buildRootPath();
- given_the_delegated_node_is_circular(circularStartPath);
-
- final Node node = differDelegator.delegate(Node.ROOT, instances);
-
- assertThat(node.getCircleStartPath()).isEqualTo(circularStartPath);
- }
-
- @Test
- public void mark_node_as_circular_if_the_delegated_node_is_circular() throws Exception
- {
- given_the_delegated_node_is_circular(PropertyPath.buildRootPath());
-
- final Node node = differDelegator.delegate(Node.ROOT, instances);
-
- assertThat(node.getState()).isEqualTo(Node.State.CIRCULAR);
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void throw_exception_if_no_differ_can_be_found_for_instance_type()
- {
- instances = Instances.of(RootAccessor.getInstance(), new UnsupportedType(), null);
-
- when(differFactory.createDiffer(eq(UnsupportedType.class), same(differDelegator))).thenReturn(null);
-
- differDelegator.delegate(Node.ROOT, instances);
- }
-
- private static Answer> returnType(final Class type)
- {
- return new Answer>()
- {
- public Class answer(final InvocationOnMock invocation) throws Throwable
- {
- return type;
- }
- };
- }
-
- private static class UnsupportedType {
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/ObjectDifferIntegrationTests.java b/src/test/java/de/danielbechler/diff/ObjectDifferIntegrationTests.java
deleted file mode 100644
index 3e6b596b..00000000
--- a/src/test/java/de/danielbechler/diff/ObjectDifferIntegrationTests.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright 2012 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff;
-
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import org.fest.assertions.api.*;
-import org.testng.annotations.*;
-
-import java.util.*;
-
-import static de.danielbechler.diff.TestGroups.*;
-import static de.danielbechler.diff.node.NodeAssertions.*;
-import static java.util.Arrays.*;
-
-/** @author Daniel Bechler */
-@Test(groups = TestGroups.INTEGRATION)
-public class ObjectDifferIntegrationTests
-{
- private ObjectDiffer objectDiffer;
-
- @BeforeMethod
- public void setUp() throws Exception
- {
- objectDiffer = ObjectDifferFactory.getInstance();
- }
-
- public void testCompareBeanWithIgnoredMapProperty()
- {
- final ObjectWithIgnoredMap working = new ObjectWithIgnoredMap();
- working.getMap().put("foo", "bar");
-
- final Node node = objectDiffer.compare(working, new ObjectWithIgnoredMap());
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
- NodeAssertions.assertThat(node).self().hasNoChildren();
- }
-
- public void testCompareCollectionWithIgnoredCollectionProperty()
- {
- final ObjectWithCollection working = new ObjectWithCollection();
- working.getCollection().add("foo");
- objectDiffer.getConfiguration().withoutProperty(PropertyPath.buildWith("collection"));
-
- final Node node = objectDiffer.compare(working, new ObjectWithCollection());
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
- NodeAssertions.assertThat(node).self().hasNoChildren();
- }
-
- public void testCompareCollectionWithAddedItem() throws Exception
- {
- final Collection working = new LinkedList(asList("foo"));
- final Collection base = new LinkedList();
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
- NodeAssertions.assertThat(node).child(new CollectionElement("foo")).hasState(Node.State.ADDED);
- }
-
- public void testCompareCollectionWithRemovedItem() throws Exception
- {
- final Collection working = new LinkedList();
- final Collection base = new LinkedList(asList("foo"));
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
- NodeAssertions.assertThat(node).child(new CollectionElement("foo")).hasState(Node.State.REMOVED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testThatIgnoredPropertiesAreNeverAccessed()
- {
- final ObjectWithAccessTrackingIgnoredProperty working = new ObjectWithAccessTrackingIgnoredProperty();
- final ObjectWithAccessTrackingIgnoredProperty base = new ObjectWithAccessTrackingIgnoredProperty();
-
- ObjectDifferFactory.getInstance().compare(working, base);
-
- Assertions.assertThat(working.accessed).isFalse();
- Assertions.assertThat(base.accessed).isFalse();
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testThatObjectGraphForAddedObjectsGetsReturned()
- {
- final ObjectWithNestedObject base = new ObjectWithNestedObject("1");
- final ObjectWithNestedObject working = new ObjectWithNestedObject("1", new ObjectWithNestedObject("2", new ObjectWithNestedObject("foo")));
- final Configuration configuration = new Configuration().withChildrenOfAddedNodes();
-
- final Node node = ObjectDifferFactory.getInstance(configuration).compare(working, base);
-
- node.visit(new NodeHierarchyVisitor());
- NodeAssertions.assertThat(node).root().hasState(Node.State.CHANGED);
- NodeAssertions.assertThat(node).child("object").hasState(Node.State.ADDED);
- NodeAssertions.assertThat(node).child("object", "object").hasState(Node.State.ADDED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testCompareCollectionWithDifferentCollectionImplementationsSucceeds() throws Exception
- {
- final Collection base = new LinkedHashSet(asList("one", "two"));
- final Collection working = new TreeSet(asList("one", "three"));
-
- final Node node = ObjectDifferFactory.getInstance().compare(base, working);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testCompareCollectionWithChangedItem() throws Exception
- {
- final List> working = asList(new ObjectWithIdentityAndValue("foo", "1"));
- final List> base = asList(new ObjectWithIdentityAndValue("foo", "2"));
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- assertThat(node).self().hasChanges();
- assertThat(node).child(new CollectionElement(new ObjectWithIdentityAndValue("foo")))
- .hasState(Node.State.CHANGED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithNewMapInWorkingAndNoneInBase()
- {
- final Map base = null;
- final Map working = new TreeMap();
- working.put("foo", "bar");
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.ADDED);
- NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.ADDED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithAdditionOfSimpleTypeToWorkingMap()
- {
- final Map base = new TreeMap();
- final Map working = new TreeMap();
- working.put("foo", "bar");
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
- NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.ADDED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithSameEntryInBaseAndWorking()
- {
- final Map base = new TreeMap();
- base.put("foo", "bar");
- final Map working = new TreeMap();
- working.put("foo", "bar");
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
- NodeAssertions.assertThat(node).self().hasNoChildren();
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithSingleEntryAddedToWorkingMap()
- {
- final Map base = new TreeMap();
- base.put("foo", "bar");
- final Map working = null;
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.REMOVED);
- NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.REMOVED);
- }
-
- /**
- * Ensures that the map can handle null values in both, the base and the working version, in which case no
- * type can be detected.
- */
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithAllNullMapItem()
- {
- final Map working = new HashMap(1);
- working.put("foo", null);
-
- final Map base = new HashMap(1);
- base.put("foo", null);
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithSameEntries()
- {
- final Map modified = new LinkedHashMap(1);
- modified.put("foo", "bar");
- final Map base = new LinkedHashMap(modified);
- modified.put("ping", "pong");
-
- final Node node = ObjectDifferFactory.getInstance().compare(modified, base);
-
- NodeAssertions.assertThat(node).root().hasChildren(1);
- NodeAssertions.assertThat(node)
- .child(PropertyPath.createBuilder().withRoot().withMapKey("foo"))
- .doesNotExist();
- NodeAssertions.assertThat(node).child(PropertyPath.createBuilder().withRoot().withMapKey("ping"))
- .hasState(Node.State.ADDED)
- .hasNoChildren();
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testWithChangedEntry()
- {
- final Map working = new LinkedHashMap(1);
- working.put("foo", "bar");
-
- final Map base = new LinkedHashMap(1);
- base.put("foo", "woot");
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
- NodeAssertions.assertThat(node).self().hasChildren(1);
- NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.CHANGED);
- }
-
- @Test(groups = TestGroups.INTEGRATION)
- public void testCompareWithDifferentMapImplementationsSucceeds() throws Exception
- {
- final Map base = new LinkedHashMap(Collections.singletonMap("test", "foo"));
- final Map working = new TreeMap(Collections.singletonMap("test", "bar"));
-
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
- }
-
- @Test(groups = INTEGRATION)
- public void testCompareWithDifferentStrings() throws Exception
- {
- final Node node = ObjectDifferFactory.getInstance().compare("foo", "bar");
-
- assertThat(node).self().hasState(Node.State.CHANGED);
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class, groups = INTEGRATION)
- public void testCompareWithDifferentTypes()
- {
- ObjectDifferFactory.getInstance().compare("foo", 1337);
- }
-
- @Test(groups = INTEGRATION)
- public void testCompareWithIgnoredProperty()
- {
- objectDiffer = ObjectDifferFactory.getInstance();
- objectDiffer.getConfiguration().withoutProperty(PropertyPath.buildRootPath());
-
- final Node node = objectDiffer.compare("foo", "bar");
-
- NodeAssertions.assertThat(node).self().hasState(Node.State.IGNORED);
- }
-
- @Test(groups = INTEGRATION)
- public void testCompareWithComplexType()
- {
-// when(introspector.introspect(any(Class.class))).thenReturn(Arrays.asList(accessor));
-// when(delegate.delegate(any(Node.class), any(Instances.class))).thenReturn(node);
-// when(configuration.isIntrospectible(any(Node.class))).thenReturn(true);
-// when(configuration.isReturnable(any(Node.class))).thenReturn(true);
-// when(node.hasChanges()).thenReturn(true);
-
- final Node node = ObjectDifferFactory.getInstance().compare(
- new ObjectWithIdentityAndValue("a", "1"),
- new ObjectWithIdentityAndValue("a", "2"));
-
- assertThat(node).self().hasState(Node.State.CHANGED);
- }
-
- @Test(enabled = false, description = "Currently this is simply not possible because of the way, the CollectionItemAccessor works. Would be great, to support this.")
- public void testCompareWithListContainingObjectTwiceDetectsIfOneGetsRemoved() throws Exception
- {
- final List base = asList(new ObjectWithHashCodeAndEquals("foo"), new ObjectWithHashCodeAndEquals("foo"));
- final List working = asList(new ObjectWithHashCodeAndEquals("foo"));
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
- node.visit(new NodeHierarchyVisitor());
- assertThat(node)
- .child(PropertyPath.createBuilder()
- .withRoot()
- .withCollectionItem(new ObjectWithHashCodeAndEquals("foo"))
- .build())
- .hasState(Node.State.REMOVED);
- }
-
- @Test(enabled = false, description = "Currently this is simply not possible because of the way, the CollectionItemAccessor works. Would be great, to support this.")
- public void testCompareWithListContainingObjectOnceDetectsIfAnotherInstanceOfItGetsAdded() throws Exception
- {
- final List base = asList(new ObjectWithHashCodeAndEquals("foo"));
- final List working = asList(new ObjectWithHashCodeAndEquals("foo"), new ObjectWithHashCodeAndEquals("foo"));
- final Node node = ObjectDifferFactory.getInstance().compare(working, base);
- node.visit(new NodeHierarchyVisitor());
- assertThat(node).child(PropertyPath.createBuilder()
- .withRoot()
- .withCollectionItem(new ObjectWithHashCodeAndEquals("foo"))
- .build()).hasState(Node.State.ADDED);
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/integration/issues/issue66/Hat.java b/src/test/java/de/danielbechler/diff/integration/issues/issue66/Hat.java
deleted file mode 100644
index ac727205..00000000
--- a/src/test/java/de/danielbechler/diff/integration/issues/issue66/Hat.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2013 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff.integration.issues.issue66;
-
-/** @author Daniel Bechler */
-@SuppressWarnings("UnusedDeclaration")
-public class Hat
-{
- private int size;
-
- public Hat()
- {
- }
-
- public Hat(final int size)
- {
- this.size = size;
- }
-
- public int getSize()
- {
- return size;
- }
-
- public void setSize(final int size)
- {
- this.size = size;
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/integration/issues/issue66/MainApp.java b/src/test/java/de/danielbechler/diff/integration/issues/issue66/MainApp.java
deleted file mode 100644
index e64589c1..00000000
--- a/src/test/java/de/danielbechler/diff/integration/issues/issue66/MainApp.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2013 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff.integration.issues.issue66;
-
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
-
-public class MainApp
-{
- private MainApp()
- {
- }
-
- public static void main(final String[] args)
- {
- final ObjectDiffer objectDiffer = ObjectDifferFactory.getInstance();
-
- final TopHat hat1 = new TopHat(1, 10);
- final TopHat hat2 = new TopHat(2, 20);
-
- final Person p1 = new Person(hat1);
- final Person p2 = new Person(hat2);
-
- final Node root = objectDiffer.compare(p1, p2);
-
- root.visit(new Node.Visitor()
- {
- public void accept(final Node node, final Visit visit)
- {
- System.out.print(node.getPropertyPath() + " :: ");
- System.out.print(node.canonicalGet(p1));
- System.out.print(" -> ");
- System.out.print(node.canonicalGet(p2));
- System.out.println();
- }
- });
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/integration/issues/issue66/Person.java b/src/test/java/de/danielbechler/diff/integration/issues/issue66/Person.java
deleted file mode 100644
index f292466d..00000000
--- a/src/test/java/de/danielbechler/diff/integration/issues/issue66/Person.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2013 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff.integration.issues.issue66;
-
-/** @author Daniel Bechler */
-@SuppressWarnings("UnusedDeclaration")
-public class Person
-{
- private Hat hat;
-
- public Person(final Hat hat)
- {
- this.hat = hat;
- }
-
- public Hat getHat()
- {
- return hat;
- }
-
- public void setHat(final Hat hat)
- {
- this.hat = hat;
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/integration/issues/issue66/TopHat.java b/src/test/java/de/danielbechler/diff/integration/issues/issue66/TopHat.java
deleted file mode 100644
index dedff834..00000000
--- a/src/test/java/de/danielbechler/diff/integration/issues/issue66/TopHat.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2013 Daniel Bechler
- *
- * Licensed 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 de.danielbechler.diff.integration.issues.issue66;
-
-/** @author Daniel Bechler */
-@SuppressWarnings("UnusedDeclaration")
-public class TopHat extends Hat
-{
- private int height;
-
- public TopHat()
- {
- }
-
- public TopHat(final int height, final int size)
- {
- super(size);
- this.height = height;
- }
-
- public int getHeight()
- {
- return height;
- }
-
- public void setHeight(final int height)
- {
- this.height = height;
- }
-}
diff --git a/src/test/java/de/danielbechler/diff/BeanDifferShould.java b/src/test/java/in/th3iedkid/diff/BeanDifferShould.java
old mode 100644
new mode 100755
similarity index 85%
rename from src/test/java/de/danielbechler/diff/BeanDifferShould.java
rename to src/test/java/in/th3iedkid/diff/BeanDifferShould.java
index 9aaeacdf..450abab1
--- a/src/test/java/de/danielbechler/diff/BeanDifferShould.java
+++ b/src/test/java/in/th3iedkid/diff/BeanDifferShould.java
@@ -14,29 +14,33 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
-
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.introspect.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
+package in.th3iedkid.diff;
+
+import in.th3iedkid.diff.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.mock.ObjectWithCompareTo;
+import in.th3iedkid.diff.mock.ObjectWithHashCodeAndEquals;
+import in.th3iedkid.diff.introspect.Introspector;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
import org.mockito.Mock;
-import org.testng.annotations.*;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.node.NodeAssertions.assertThat;
-import static java.util.Arrays.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
+import static java.util.Arrays.asList;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.*;
+import static org.hamcrest.core.Is.is;
import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
+import static org.mockito.MockitoAnnotations.initMocks;
/** @author Daniel Bechler */
// TODO Use mocked NodeInspector instead of actual implementation of Configuration
public class BeanDifferShould
{
private BeanDiffer differ;
- private Configuration configuration;
+ private in.th3iedkid.diff.Configuration configuration;
@Mock private DifferDelegator delegator;
@Mock private Introspector introspector;
@@ -50,7 +54,7 @@ public class BeanDifferShould
public void setUp()
{
initMocks(this);
- configuration = new Configuration();
+ configuration = new in.th3iedkid.diff.Configuration();
differ = new BeanDiffer(delegator, configuration);
differ.setIntrospector(introspector);
}
@@ -131,7 +135,7 @@ public void compare_bean_via_introspection_and_delegate_comparison_of_properties
final DefaultNode propertyNode = mock(DefaultNode.class);
final BeanPropertyComparisonDelegator beanPropertyComparer = mock(BeanPropertyComparisonDelegator.class);
final DefaultNodeFactory defaultNodeFactory = mock(DefaultNodeFactory.class);
- final Configuration configuration = mock(Configuration.class);
+ final in.th3iedkid.diff.Configuration configuration = mock(in.th3iedkid.diff.Configuration.class);
final DifferDelegator delegator = mock(DifferDelegator.class);
final Introspector introspector = mock(Introspector.class);
diff --git a/src/test/java/de/danielbechler/diff/BeanPropertyComparisonDelegatorShould.java b/src/test/java/in/th3iedkid/diff/BeanPropertyComparisonDelegatorShould.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/test/java/de/danielbechler/diff/BeanPropertyComparisonDelegatorShould.java
rename to src/test/java/in/th3iedkid/diff/BeanPropertyComparisonDelegatorShould.java
index 0723116d..4c637d8b
--- a/src/test/java/de/danielbechler/diff/BeanPropertyComparisonDelegatorShould.java
+++ b/src/test/java/in/th3iedkid/diff/BeanPropertyComparisonDelegatorShould.java
@@ -14,15 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.Node;
import org.mockito.Mock;
-import org.testng.annotations.*;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
+import static org.mockito.MockitoAnnotations.initMocks;
/** @author Daniel Bechler */
public class BeanPropertyComparisonDelegatorShould
@@ -33,7 +34,7 @@ public class BeanPropertyComparisonDelegatorShould
@Mock private Node propertyNode;
@Mock private Accessor propertyAccessor;
@Mock private DifferDelegator delegator;
- @Mock private Configuration configuration;
+ @Mock private in.th3iedkid.diff.Configuration configuration;
@Mock private PropertyNodeFactory propertyNodeFactory;
@Mock private Instances beanInstances;
@Mock private Instances propertyInstances;
diff --git a/src/test/java/de/danielbechler/diff/CircularReferenceDetectorTest.java b/src/test/java/in/th3iedkid/diff/CircularReferenceDetectorTest.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/CircularReferenceDetectorTest.java
rename to src/test/java/in/th3iedkid/diff/CircularReferenceDetectorTest.java
index bb91d7bc..6bb67691
--- a/src/test/java/de/danielbechler/diff/CircularReferenceDetectorTest.java
+++ b/src/test/java/in/th3iedkid/diff/CircularReferenceDetectorTest.java
@@ -14,17 +14,20 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.fest.assertions.api.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.CircularReferenceDetector;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.fest.assertions.api.Assertions;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.*;
-import static org.testng.Assert.*;
+import static org.hamcrest.core.Is.is;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
/** @author Daniel Bechler */
public class CircularReferenceDetectorTest
diff --git a/src/test/java/in/th3iedkid/diff/CollectionDifferShould.java b/src/test/java/in/th3iedkid/diff/CollectionDifferShould.java
new file mode 100755
index 00000000..ebdf6ed0
--- /dev/null
+++ b/src/test/java/in/th3iedkid/diff/CollectionDifferShould.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2012 Daniel Bechler
+ *
+ * Licensed 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 in.th3iedkid.diff;
+
+import in.th3iedkid.diff.accessor.CollectionItemAccessor;
+import in.th3iedkid.diff.node.CollectionNode;
+import in.th3iedkid.diff.node.Node;
+import org.fest.assertions.api.Assertions;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.Collection;
+
+import static java.util.Arrays.asList;
+import static java.util.Collections.emptyList;
+import static org.mockito.Mockito.*;
+
+/** @author Daniel Bechler */
+public class CollectionDifferShould {
+ private CollectionDiffer collectionDiffer;
+ @Mock
+ private NodeInspector nodeInspector;
+ @Mock
+ private DifferDelegator delegator;
+ @Mock
+ private CollectionNodeFactory collectionNodeFactory;
+ @Mock
+ private CollectionNode collectionNode;
+ @Mock
+ private Node collectionItemNode;
+ @Mock
+ private Instances instances;
+ @Mock
+ private Instances itemInstances;
+ @Mock
+ private CollectionItemAccessorFactory collectionItemAccessorFactory;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ collectionDiffer = new CollectionDiffer(delegator, nodeInspector);
+ collectionDiffer.setCollectionNodeFactory(collectionNodeFactory);
+ collectionDiffer.setCollectionItemAccessorFactory(collectionItemAccessorFactory);
+ when(collectionNodeFactory.create(Node.ROOT, instances)).thenReturn(collectionNode);
+ }
+
+ @Test(expectedExceptions = IllegalArgumentException.class)
+ public void fail_if_constructed_without_delegator() {
+ new CollectionDiffer(null, nodeInspector);
+ }
+
+ @Test(expectedExceptions = IllegalArgumentException.class)
+ public void fail_if_constructed_without_configuration() {
+ new CollectionDiffer(delegator, null);
+ }
+
+ @Test
+ public void return_untouched_node_if_base_and_working_are_the_same_instance() {
+ when(instances.areSame()).thenReturn(true);
+ compare();
+ verify(collectionNode).setState(Node.State.UNTOUCHED);
+ }
+
+ @Test
+ public void return_added_node_if_working_is_not_null_and_base_is_null() throws Exception {
+ when(instances.hasBeenAdded()).thenReturn(true);
+ when(instances.getWorking(Collection.class)).thenReturn(emptyList());
+ compare();
+ verify(collectionNode).setState(Node.State.ADDED);
+ }
+
+ @Test(dependsOnMethods = "return_added_node_if_working_is_not_null_and_base_is_null")
+ public void delegate_items_of_added_collection_to_delegator() {
+ when(instances.hasBeenAdded()).thenReturn(true);
+ when(instances.getWorking(Collection.class)).thenReturn(asList("foo"));
+ when(instances.access(any(CollectionItemAccessor.class))).thenReturn(itemInstances); // TODO get rid of any
+ when(delegator.delegate(collectionNode, itemInstances)).thenReturn(collectionItemNode);
+ when(nodeInspector.isReturnable(collectionItemNode)).thenReturn(true);
+ compare();
+ verify(collectionNode).addChild(collectionItemNode);
+ }
+
+ @Test
+ public void return_ignored_node_if_property_is_ignored() throws Exception {
+ when(nodeInspector.isIgnored(collectionNode)).thenReturn(true);
+ compare();
+ verify(collectionNode).setState(Node.State.IGNORED);
+ }
+
+ @Test
+ public void return_removed_node_if_working_is_null_and_base_is_not_null() throws Exception {
+ when(instances.hasBeenRemoved()).thenReturn(true);
+ when(instances.getBase(Collection.class)).thenReturn(emptyList());
+ compare();
+ verify(collectionNode).setState(Node.State.REMOVED);
+ }
+
+ @Test
+ public void compare_only_via_equals_if_equals_only_is_enabled() {
+ when(nodeInspector.isEqualsOnly(collectionNode)).thenReturn(true);
+ when(instances.areEqual()).thenReturn(true);
+ compare();
+ verify(collectionNode).setState(Node.State.UNTOUCHED);
+ }
+
+ @Test
+ public void detect_changes_if_equals_only_is_enabled() {
+ when(nodeInspector.isEqualsOnly(collectionNode)).thenReturn(true);
+ compare();
+ verify(collectionNode).setState(Node.State.CHANGED);
+ }
+
+ private void compare() {
+ final CollectionNode node = collectionDiffer.compare(Node.ROOT, instances);
+ Assertions.assertThat(node).isSameAs(collectionNode);
+ }
+
+ @Test
+ public void delegate_items_of_removed_collection_to_delegator() {
+ when(instances.hasBeenRemoved()).thenReturn(true);
+ when(instances.getBase(Collection.class)).thenReturn(asList("foo"));
+ when(instances.access(any(CollectionItemAccessor.class))).thenReturn(itemInstances); // TODO get rid of any
+ when(delegator.delegate(collectionNode, itemInstances)).thenReturn(collectionItemNode);
+ when(nodeInspector.isReturnable(collectionItemNode)).thenReturn(true);
+ compare();
+ verify(collectionNode).addChild(collectionItemNode);
+ }
+
+ @Test
+ public void delegate_all_items_to_delegator_on_deep_comparison() {
+ when(instances.getWorking(Collection.class)).thenReturn(asList("foo", "bar"));
+ when(instances.getBase(Collection.class)).thenReturn(asList("foo", "foobar"));
+
+ final Node fooNode = whenDelegatorGetsCalledWithInstancesForItem("foo");
+ final Node barNode = whenDelegatorGetsCalledWithInstancesForItem("bar");
+ final Node foobarNode = whenDelegatorGetsCalledWithInstancesForItem("foobar");
+
+ when(nodeInspector.isReturnable(any(Node.class))).thenReturn(true);
+
+ compare();
+
+ verify(collectionNode).addChild(fooNode);
+ verify(collectionNode).addChild(barNode);
+ verify(collectionNode).addChild(foobarNode);
+ verifyNoMoreInteractions(collectionNode);
+ }
+
+ private Node whenDelegatorGetsCalledWithInstancesForItem(final String item) {
+ final CollectionItemAccessor fooAccessor = mock(CollectionItemAccessor.class);
+ when(collectionItemAccessorFactory.createAccessorForItem(item)).thenReturn(fooAccessor);
+
+ final Instances fooInstances = mock(Instances.class);
+ when(instances.access(fooAccessor)).thenReturn(fooInstances);
+
+ final Node fooNode = mock(Node.class);
+ when(delegator.delegate(collectionNode, fooInstances)).thenReturn(fooNode);
+
+ return fooNode;
+ }
+}
diff --git a/src/test/java/de/danielbechler/diff/ConfigurationTest.java b/src/test/java/in/th3iedkid/diff/ConfigurationTest.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/ConfigurationTest.java
rename to src/test/java/in/th3iedkid/diff/ConfigurationTest.java
index ae88fa42..fee5c257
--- a/src/test/java/de/danielbechler/diff/ConfigurationTest.java
+++ b/src/test/java/in/th3iedkid/diff/ConfigurationTest.java
@@ -14,22 +14,26 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
-
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import org.mockito.*;
-import org.mockito.invocation.*;
-import org.mockito.stubbing.*;
-import org.testng.annotations.*;
+package in.th3iedkid.diff;
+
+import in.th3iedkid.diff.mock.ObjectWithCollection;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.mock.ObjectWithStringAndCompareTo;
+import in.th3iedkid.diff.node.TypeAwareNode;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
import java.math.BigDecimal;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.*;
-import static org.mockito.Mockito.*;
+import static org.hamcrest.core.Is.is;
+import static org.mockito.Mockito.when;
/** @author Daniel Bechler */
public class ConfigurationTest
@@ -37,13 +41,13 @@ public class ConfigurationTest
@Mock
private TypeAwareNode node;
- private Configuration configuration;
+ private in.th3iedkid.diff.Configuration configuration;
@BeforeMethod
public void setUp()
{
MockitoAnnotations.initMocks(this);
- configuration = new Configuration();
+ configuration = new in.th3iedkid.diff.Configuration();
}
@Test
diff --git a/src/test/java/in/th3iedkid/diff/DifferDelegatorShould.java b/src/test/java/in/th3iedkid/diff/DifferDelegatorShould.java
new file mode 100755
index 00000000..58cd869d
--- /dev/null
+++ b/src/test/java/in/th3iedkid/diff/DifferDelegatorShould.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2013 Daniel Bechler
+ *
+ * Licensed 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 in.th3iedkid.diff;
+
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.RootAccessor;
+import in.th3iedkid.diff.mock.ObjectWithCircularReference;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.mockito.Mock;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import static org.fest.assertions.api.Assertions.assertThat;
+import static org.mockito.Mockito.*;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+/** @author Daniel Bechler */
+public class DifferDelegatorShould {
+ @Mock
+ private DifferFactory differFactory;
+ @Mock
+ private Accessor accessor;
+ @Mock
+ private CircularReferenceDetectorFactory circularReferenceDetectorFactory;
+ @Mock
+ private CircularReferenceDetector circularReferenceDetector;
+ private Instances instances;
+ private DifferDelegator differDelegator;
+
+ private static Answer> returnType(final Class type) {
+ return new Answer>() {
+ public Class answer(final InvocationOnMock invocation) throws Throwable {
+ return type;
+ }
+ };
+ }
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ initMocks(this);
+
+ when(circularReferenceDetectorFactory.create()).thenReturn(circularReferenceDetector);
+
+ differDelegator = new DifferDelegator(differFactory, circularReferenceDetectorFactory);
+ }
+
+ @SuppressWarnings("unchecked")
+ private void given_the_delegated_node_is_circular(final PropertyPath circularStartPath) {
+ instances = mock(Instances.class);
+ differDelegator = new DifferDelegator(differFactory, circularReferenceDetectorFactory) {
+ @Override
+ protected void rememberInstances(final Node parentNode, final Instances instances) {
+ throw new CircularReferenceDetector.CircularReferenceException(circularStartPath);
+ }
+ };
+ when(instances.getSourceAccessor()).thenReturn(RootAccessor.getInstance());
+ when(instances.getType()).then(returnType(Object.class));
+ when(differFactory.createDiffer(ObjectWithCircularReference.class, differDelegator)).thenReturn(
+ mock(Differ.class));
+ }
+
+ @Test
+ public void assign_the_circular_start_path_if_the_delegated_node_is_circular() throws Exception {
+ final PropertyPath circularStartPath = PropertyPath.buildRootPath();
+ given_the_delegated_node_is_circular(circularStartPath);
+
+ final Node node = differDelegator.delegate(Node.ROOT, instances);
+
+ assertThat(node.getCircleStartPath()).isEqualTo(circularStartPath);
+ }
+
+ @Test
+ public void mark_node_as_circular_if_the_delegated_node_is_circular() throws Exception {
+ given_the_delegated_node_is_circular(PropertyPath.buildRootPath());
+
+ final Node node = differDelegator.delegate(Node.ROOT, instances);
+
+ assertThat(node.getState()).isEqualTo(Node.State.CIRCULAR);
+ }
+
+ @Test(expectedExceptions = IllegalStateException.class)
+ public void throw_exception_if_no_differ_can_be_found_for_instance_type() {
+ instances = Instances.of(RootAccessor.getInstance(), new UnsupportedType(), null);
+
+ when(differFactory.createDiffer(eq(UnsupportedType.class), same(differDelegator))).thenReturn(null);
+
+ differDelegator.delegate(Node.ROOT, instances);
+ }
+
+ private static class UnsupportedType {
+ }
+}
diff --git a/src/test/java/de/danielbechler/diff/DifferFactoryShould.java b/src/test/java/in/th3iedkid/diff/DifferFactoryShould.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/DifferFactoryShould.java
rename to src/test/java/in/th3iedkid/diff/DifferFactoryShould.java
index 9fb3b4b2..d9f99eeb
--- a/src/test/java/de/danielbechler/diff/DifferFactoryShould.java
+++ b/src/test/java/in/th3iedkid/diff/DifferFactoryShould.java
@@ -14,16 +14,19 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.mock.*;
+import in.th3iedkid.diff.*;
+import in.th3iedkid.diff.mock.ObjectWithString;
import org.mockito.Mock;
-import org.testng.annotations.*;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
import java.util.*;
-import static org.fest.assertions.api.Assertions.*;
-import static org.mockito.MockitoAnnotations.*;
+import static org.fest.assertions.api.Assertions.assertThat;
+import static org.mockito.MockitoAnnotations.initMocks;
/** @author Daniel Bechler */
public class DifferFactoryShould
@@ -32,7 +35,7 @@ public class DifferFactoryShould
@Mock
private DifferDelegator differDelegator;
@Mock
- private Configuration configuration;
+ private in.th3iedkid.diff.Configuration configuration;
@BeforeMethod
public void initDifferFactory()
diff --git a/src/test/java/de/danielbechler/diff/InstancesTest.java b/src/test/java/in/th3iedkid/diff/InstancesTest.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/InstancesTest.java
rename to src/test/java/in/th3iedkid/diff/InstancesTest.java
index ba685d8e..5cd217ef
--- a/src/test/java/de/danielbechler/diff/InstancesTest.java
+++ b/src/test/java/in/th3iedkid/diff/InstancesTest.java
@@ -14,16 +14,19 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.accessor.RootAccessor;
+import in.th3iedkid.diff.accessor.TypeAwareAccessor;
+import org.testng.annotations.Test;
-import java.lang.reflect.*;
+import java.lang.reflect.Method;
-import static de.danielbechler.diff.extension.MockitoExtensions.*;
-import static org.fest.assertions.api.Assertions.*;
-import static org.mockito.Mockito.*;
+import static in.th3iedkid.diff.extension.MockitoExtensions.returnClass;
+import static org.fest.assertions.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
/** @author Daniel Bechler */
public class InstancesTest
diff --git a/src/test/java/de/danielbechler/diff/Instances_getType_Specification.groovy b/src/test/java/in/th3iedkid/diff/Instances_getType_Specification.groovy
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/Instances_getType_Specification.groovy
rename to src/test/java/in/th3iedkid/diff/Instances_getType_Specification.groovy
index e63fbf7d..2a701110
--- a/src/test/java/de/danielbechler/diff/Instances_getType_Specification.groovy
+++ b/src/test/java/in/th3iedkid/diff/Instances_getType_Specification.groovy
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff
+package in.th3iedkid.diff
-import de.danielbechler.diff.accessor.RootAccessor
-import de.danielbechler.diff.accessor.TypeAwareAccessor
+import in.th3iedkid.diff.accessor.RootAccessor
+import in.th3iedkid.diff.accessor.TypeAwareAccessor
import spock.lang.Specification
import spock.lang.Unroll
-
/**
* @author Daniel Bechler
*/
diff --git a/src/test/java/de/danielbechler/diff/ListDiffSpecification.groovy b/src/test/java/in/th3iedkid/diff/ListDiffSpecification.groovy
old mode 100644
new mode 100755
similarity index 73%
rename from src/test/java/de/danielbechler/diff/ListDiffSpecification.groovy
rename to src/test/java/in/th3iedkid/diff/ListDiffSpecification.groovy
index 248c72fb..7a6c5605
--- a/src/test/java/de/danielbechler/diff/ListDiffSpecification.groovy
+++ b/src/test/java/in/th3iedkid/diff/ListDiffSpecification.groovy
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff
+package in.th3iedkid.diff
-import de.danielbechler.diff.path.CollectionElement
-import de.danielbechler.diff.visitor.PrintingVisitor
+import in.th3iedkid.diff.path.CollectionElement
+import in.th3iedkid.diff.visitor.PrintingVisitor
import spock.lang.Ignore
import spock.lang.Specification
-
/**
* @author Daniel Bechler
*/
@@ -36,15 +35,15 @@ class ListDiffSpecification extends Specification
@Ignore
def "detects position switch"()
{
- de.danielbechler.diff.node.Node node;
+ Node node;
when:
node = objectDiffer.compare(working, base);
then:
node.visit(new PrintingVisitor(working, base));
- node.getChild(new CollectionElement("a")).getState() == de.danielbechler.diff.node.Node.State.CHANGED;
- node.getChild(new CollectionElement("b")).getState() == de.danielbechler.diff.node.Node.State.CHANGED;
+ node.getChild(new CollectionElement("a")).getState() == Node.State.CHANGED;
+ node.getChild(new CollectionElement("b")).getState() == Node.State.CHANGED;
where:
base | working
diff --git a/src/test/java/de/danielbechler/diff/MapDifferShould.java b/src/test/java/in/th3iedkid/diff/MapDifferShould.java
old mode 100644
new mode 100755
similarity index 90%
rename from src/test/java/de/danielbechler/diff/MapDifferShould.java
rename to src/test/java/in/th3iedkid/diff/MapDifferShould.java
index 92848556..aad3a399
--- a/src/test/java/de/danielbechler/diff/MapDifferShould.java
+++ b/src/test/java/in/th3iedkid/diff/MapDifferShould.java
@@ -14,19 +14,23 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
+import in.th3iedkid.diff.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.node.MapNode;
+import in.th3iedkid.diff.node.Node;
import org.mockito.Mock;
-import org.testng.annotations.*;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
-import static de.danielbechler.diff.node.Node.State.*;
-import static org.fest.assertions.api.Assertions.*;
+import static in.th3iedkid.diff.node.Node.State.*;
+import static org.fest.assertions.api.Assertions.assertThat;
import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
+import static org.mockito.MockitoAnnotations.initMocks;
/** @author Daniel Bechler */
public class MapDifferShould
diff --git a/src/test/java/de/danielbechler/diff/ObjectDifferFactoryTest.java b/src/test/java/in/th3iedkid/diff/ObjectDifferFactoryTest.java
old mode 100644
new mode 100755
similarity index 79%
rename from src/test/java/de/danielbechler/diff/ObjectDifferFactoryTest.java
rename to src/test/java/in/th3iedkid/diff/ObjectDifferFactoryTest.java
index 94e420ab..1dfc7fd3
--- a/src/test/java/de/danielbechler/diff/ObjectDifferFactoryTest.java
+++ b/src/test/java/in/th3iedkid/diff/ObjectDifferFactoryTest.java
@@ -14,12 +14,15 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import org.hamcrest.core.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import org.hamcrest.core.IsEqual;
+import org.hamcrest.core.IsNull;
+import org.testng.annotations.Test;
-import static org.hamcrest.MatcherAssert.*;
+import static org.hamcrest.MatcherAssert.assertThat;
/** @author Daniel Bechler */
public class ObjectDifferFactoryTest
@@ -33,7 +36,7 @@ public void testGetInstanceWithNullConfiguration() throws Exception
@Test
public void testGetInstanceWithConfiguration() throws Exception
{
- final Configuration configuration = new Configuration();
+ final in.th3iedkid.diff.Configuration configuration = new in.th3iedkid.diff.Configuration();
final ObjectDiffer objectDiffer = ObjectDifferFactory.getInstance(configuration);
assertThat(objectDiffer.getConfiguration(), IsEqual.equalTo(configuration));
}
diff --git a/src/test/java/in/th3iedkid/diff/ObjectDifferIntegrationTests.java b/src/test/java/in/th3iedkid/diff/ObjectDifferIntegrationTests.java
new file mode 100755
index 00000000..726d77d7
--- /dev/null
+++ b/src/test/java/in/th3iedkid/diff/ObjectDifferIntegrationTests.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright 2012 Daniel Bechler
+ *
+ * Licensed 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 in.th3iedkid.diff;
+
+import in.th3iedkid.diff.mock.*;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.node.NodeAssertions;
+import in.th3iedkid.diff.path.CollectionElement;
+import in.th3iedkid.diff.path.MapElement;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.NodeHierarchyVisitor;
+import org.fest.assertions.api.Assertions;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.*;
+
+import static in.th3iedkid.diff.TestGroups.INTEGRATION;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
+import static java.util.Arrays.asList;
+
+/** @author Daniel Bechler */
+@Test(groups = TestGroups.INTEGRATION)
+public class ObjectDifferIntegrationTests {
+ private ObjectDiffer objectDiffer;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ objectDiffer = ObjectDifferFactory.getInstance();
+ }
+
+ public void testCompareBeanWithIgnoredMapProperty() {
+ final ObjectWithIgnoredMap working = new ObjectWithIgnoredMap();
+ working.getMap().put("foo", "bar");
+
+ final Node node = objectDiffer.compare(working, new ObjectWithIgnoredMap());
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
+ NodeAssertions.assertThat(node).self().hasNoChildren();
+ }
+
+ public void testCompareCollectionWithIgnoredCollectionProperty() {
+ final ObjectWithCollection working = new ObjectWithCollection();
+ working.getCollection().add("foo");
+ objectDiffer.getConfiguration().withoutProperty(PropertyPath.buildWith("collection"));
+
+ final Node node = objectDiffer.compare(working, new ObjectWithCollection());
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
+ NodeAssertions.assertThat(node).self().hasNoChildren();
+ }
+
+ public void testCompareCollectionWithAddedItem() throws Exception {
+ final Collection working = new LinkedList(asList("foo"));
+ final Collection base = new LinkedList();
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
+ NodeAssertions.assertThat(node).child(new CollectionElement("foo")).hasState(Node.State.ADDED);
+ }
+
+ public void testCompareCollectionWithRemovedItem() throws Exception {
+ final Collection working = new LinkedList();
+ final Collection base = new LinkedList(asList("foo"));
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
+ NodeAssertions.assertThat(node).child(new CollectionElement("foo")).hasState(Node.State.REMOVED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testThatIgnoredPropertiesAreNeverAccessed() {
+ final ObjectWithAccessTrackingIgnoredProperty working = new ObjectWithAccessTrackingIgnoredProperty();
+ final ObjectWithAccessTrackingIgnoredProperty base = new ObjectWithAccessTrackingIgnoredProperty();
+
+ ObjectDifferFactory.getInstance().compare(working, base);
+
+ Assertions.assertThat(working.accessed).isFalse();
+ Assertions.assertThat(base.accessed).isFalse();
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testThatObjectGraphForAddedObjectsGetsReturned() {
+ final ObjectWithNestedObject base = new ObjectWithNestedObject("1");
+ final ObjectWithNestedObject working = new ObjectWithNestedObject("1", new ObjectWithNestedObject("2",
+ new ObjectWithNestedObject("foo")));
+ final in.th3iedkid.diff.Configuration configuration = new in.th3iedkid.diff.Configuration()
+ .withChildrenOfAddedNodes();
+
+ final Node node = ObjectDifferFactory.getInstance(configuration).compare(working, base);
+
+ node.visit(new NodeHierarchyVisitor());
+ NodeAssertions.assertThat(node).root().hasState(Node.State.CHANGED);
+ NodeAssertions.assertThat(node).child("object").hasState(Node.State.ADDED);
+ NodeAssertions.assertThat(node).child("object", "object").hasState(Node.State.ADDED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testCompareCollectionWithDifferentCollectionImplementationsSucceeds() throws Exception {
+ final Collection base = new LinkedHashSet(asList("one", "two"));
+ final Collection working = new TreeSet(asList("one", "three"));
+
+ final Node node = ObjectDifferFactory.getInstance().compare(base, working);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testCompareCollectionWithChangedItem() throws Exception {
+ final List> working = asList(new ObjectWithIdentityAndValue("foo", "1"));
+ final List> base = asList(new ObjectWithIdentityAndValue("foo", "2"));
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ assertThat(node).self().hasChanges();
+ assertThat(node).child(new CollectionElement(new ObjectWithIdentityAndValue("foo"))).hasState(
+ Node.State.CHANGED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithNewMapInWorkingAndNoneInBase() {
+ final Map base = null;
+ final Map working = new TreeMap();
+ working.put("foo", "bar");
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.ADDED);
+ NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.ADDED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithAdditionOfSimpleTypeToWorkingMap() {
+ final Map base = new TreeMap();
+ final Map working = new TreeMap();
+ working.put("foo", "bar");
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
+ NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.ADDED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithSameEntryInBaseAndWorking() {
+ final Map base = new TreeMap();
+ base.put("foo", "bar");
+ final Map working = new TreeMap();
+ working.put("foo", "bar");
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
+ NodeAssertions.assertThat(node).self().hasNoChildren();
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithSingleEntryAddedToWorkingMap() {
+ final Map base = new TreeMap();
+ base.put("foo", "bar");
+ final Map working = null;
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.REMOVED);
+ NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.REMOVED);
+ }
+
+ /**
+ * Ensures that the map can handle null values in both, the base and the working version, in which case no type can
+ * be detected.
+ */
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithAllNullMapItem() {
+ final Map working = new HashMap(1);
+ working.put("foo", null);
+
+ final Map base = new HashMap(1);
+ base.put("foo", null);
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.UNTOUCHED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithSameEntries() {
+ final Map modified = new LinkedHashMap(1);
+ modified.put("foo", "bar");
+ final Map base = new LinkedHashMap(modified);
+ modified.put("ping", "pong");
+
+ final Node node = ObjectDifferFactory.getInstance().compare(modified, base);
+
+ NodeAssertions.assertThat(node).root().hasChildren(1);
+ NodeAssertions.assertThat(node).child(PropertyPath.createBuilder().withRoot().withMapKey("foo")).doesNotExist();
+ NodeAssertions.assertThat(node).child(PropertyPath.createBuilder().withRoot().withMapKey("ping"))
+ .hasState(Node.State.ADDED).hasNoChildren();
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testWithChangedEntry() {
+ final Map working = new LinkedHashMap(1);
+ working.put("foo", "bar");
+
+ final Map base = new LinkedHashMap(1);
+ base.put("foo", "woot");
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+ NodeAssertions.assertThat(node).self().hasChildren(1);
+ NodeAssertions.assertThat(node).child(new MapElement("foo")).hasState(Node.State.CHANGED);
+ }
+
+ @Test(groups = TestGroups.INTEGRATION)
+ public void testCompareWithDifferentMapImplementationsSucceeds() throws Exception {
+ final Map base = new LinkedHashMap(Collections.singletonMap("test", "foo"));
+ final Map working = new TreeMap(Collections.singletonMap("test", "bar"));
+
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.CHANGED);
+ }
+
+ @Test(groups = INTEGRATION)
+ public void testCompareWithDifferentStrings() throws Exception {
+ final Node node = ObjectDifferFactory.getInstance().compare("foo", "bar");
+
+ assertThat(node).self().hasState(Node.State.CHANGED);
+ }
+
+ @Test(expectedExceptions = IllegalArgumentException.class, groups = INTEGRATION)
+ public void testCompareWithDifferentTypes() {
+ ObjectDifferFactory.getInstance().compare("foo", 1337);
+ }
+
+ @Test(groups = INTEGRATION)
+ public void testCompareWithIgnoredProperty() {
+ objectDiffer = ObjectDifferFactory.getInstance();
+ objectDiffer.getConfiguration().withoutProperty(PropertyPath.buildRootPath());
+
+ final Node node = objectDiffer.compare("foo", "bar");
+
+ NodeAssertions.assertThat(node).self().hasState(Node.State.IGNORED);
+ }
+
+ @Test(groups = INTEGRATION)
+ public void testCompareWithComplexType() {
+ // when(introspector.introspect(any(Class.class))).thenReturn(Arrays.asList(accessor));
+ // when(delegate.delegate(any(Node.class), any(Instances.class))).thenReturn(node);
+ // when(configuration.isIntrospectible(any(Node.class))).thenReturn(true);
+ // when(configuration.isReturnable(any(Node.class))).thenReturn(true);
+ // when(node.hasChanges()).thenReturn(true);
+
+ final Node node = ObjectDifferFactory.getInstance().compare(new ObjectWithIdentityAndValue("a", "1"),
+ new ObjectWithIdentityAndValue("a", "2"));
+
+ assertThat(node).self().hasState(Node.State.CHANGED);
+ }
+
+ @Test(
+ enabled = false,
+ description = "Currently this is simply not possible because of the way, the CollectionItemAccessor works. Would be great, to support this.")
+ public void testCompareWithListContainingObjectTwiceDetectsIfOneGetsRemoved() throws Exception {
+ final List base = asList(new ObjectWithHashCodeAndEquals("foo"),
+ new ObjectWithHashCodeAndEquals("foo"));
+ final List working = asList(new ObjectWithHashCodeAndEquals("foo"));
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+ node.visit(new NodeHierarchyVisitor());
+ assertThat(node).child(
+ PropertyPath.createBuilder().withRoot().withCollectionItem(new ObjectWithHashCodeAndEquals("foo"))
+ .build()).hasState(Node.State.REMOVED);
+ }
+
+ @Test(
+ enabled = false,
+ description = "Currently this is simply not possible because of the way, the CollectionItemAccessor works. Would be great, to support this.")
+ public void testCompareWithListContainingObjectOnceDetectsIfAnotherInstanceOfItGetsAdded() throws Exception {
+ final List base = asList(new ObjectWithHashCodeAndEquals("foo"));
+ final List working = asList(new ObjectWithHashCodeAndEquals("foo"),
+ new ObjectWithHashCodeAndEquals("foo"));
+ final Node node = ObjectDifferFactory.getInstance().compare(working, base);
+ node.visit(new NodeHierarchyVisitor());
+ assertThat(node).child(
+ PropertyPath.createBuilder().withRoot().withCollectionItem(new ObjectWithHashCodeAndEquals("foo"))
+ .build()).hasState(Node.State.ADDED);
+ }
+}
diff --git a/src/test/java/de/danielbechler/diff/PrimitiveDifferTest.java b/src/test/java/in/th3iedkid/diff/PrimitiveDifferTest.java
old mode 100644
new mode 100755
similarity index 84%
rename from src/test/java/de/danielbechler/diff/PrimitiveDifferTest.java
rename to src/test/java/in/th3iedkid/diff/PrimitiveDifferTest.java
index bb321d3e..766ac21f
--- a/src/test/java/de/danielbechler/diff/PrimitiveDifferTest.java
+++ b/src/test/java/in/th3iedkid/diff/PrimitiveDifferTest.java
@@ -14,32 +14,36 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
+import in.th3iedkid.diff.accessor.TypeAwareAccessor;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.diff.path.PropertyPath;
import org.mockito.Mock;
-import org.mockito.internal.debugging.*;
-import org.testng.annotations.*;
+import org.mockito.internal.debugging.MockitoDebuggerImpl;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
import java.util.ArrayList;
-import java.util.*;
+import java.util.List;
-import static de.danielbechler.diff.Configuration.*;
-import static de.danielbechler.diff.Configuration.PrimitiveDefaultValueMode.*;
-import static de.danielbechler.diff.extension.MockitoExtensions.*;
-import static de.danielbechler.diff.node.Node.State.*;
-import static de.danielbechler.diff.node.NodeAssertions.*;
-import static java.util.Arrays.*;
-import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
+import static in.th3iedkid.diff.Configuration.PrimitiveDefaultValueMode;
+import static in.th3iedkid.diff.Configuration.PrimitiveDefaultValueMode.UNASSIGNED;
+import static in.th3iedkid.diff.extension.MockitoExtensions.returnClass;
+import static in.th3iedkid.diff.node.Node.State.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
+import static java.util.Arrays.asList;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
/** @author Daniel Bechler */
public class PrimitiveDifferTest
{
private PrimitiveDiffer differ;
- private Configuration configuration;
+ private in.th3iedkid.diff.Configuration configuration;
@Mock private DifferDelegator differDelegator;
@Mock private TypeAwareAccessor accessor;
@@ -47,7 +51,7 @@ public class PrimitiveDifferTest
public void setUp()
{
initMocks(this);
- configuration = new Configuration();
+ configuration = new in.th3iedkid.diff.Configuration();
configuration.treatPrimitiveDefaultValuesAs(UNASSIGNED);
differ = new PrimitiveDiffer(configuration);
}
diff --git a/src/test/java/de/danielbechler/diff/TestGroups.java b/src/test/java/in/th3iedkid/diff/TestGroups.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/TestGroups.java
rename to src/test/java/in/th3iedkid/diff/TestGroups.java
index c1bd92b9..db5b77b4
--- a/src/test/java/de/danielbechler/diff/TestGroups.java
+++ b/src/test/java/in/th3iedkid/diff/TestGroups.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff;
+package in.th3iedkid.diff;
public final class TestGroups
{
diff --git a/src/test/java/de/danielbechler/diff/accessor/CollectionItemAccessorShould.java b/src/test/java/in/th3iedkid/diff/accessor/CollectionItemAccessorShould.java
old mode 100644
new mode 100755
similarity index 90%
rename from src/test/java/de/danielbechler/diff/accessor/CollectionItemAccessorShould.java
rename to src/test/java/in/th3iedkid/diff/accessor/CollectionItemAccessorShould.java
index 3d303b99..8e438c88
--- a/src/test/java/de/danielbechler/diff/accessor/CollectionItemAccessorShould.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/CollectionItemAccessorShould.java
@@ -14,16 +14,21 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.fest.assertions.core.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.CollectionItemAccessor;
+import in.th3iedkid.diff.mock.ObjectWithIdentityAndValue;
+import in.th3iedkid.diff.path.CollectionElement;
+import in.th3iedkid.diff.path.Element;
+import org.fest.assertions.core.Condition;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
-import static org.fest.assertions.api.Assertions.*;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class CollectionItemAccessorShould
diff --git a/src/test/java/de/danielbechler/diff/accessor/MapEntryAccessorShould.java b/src/test/java/in/th3iedkid/diff/accessor/MapEntryAccessorShould.java
old mode 100644
new mode 100755
similarity index 85%
rename from src/test/java/de/danielbechler/diff/accessor/MapEntryAccessorShould.java
rename to src/test/java/in/th3iedkid/diff/accessor/MapEntryAccessorShould.java
index 116810d0..0a53ddd7
--- a/src/test/java/de/danielbechler/diff/accessor/MapEntryAccessorShould.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/MapEntryAccessorShould.java
@@ -14,21 +14,26 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.hamcrest.core.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.MapEntryAccessor;
+import in.th3iedkid.diff.mock.ObjectWithIdentityAndValue;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.MapElement;
+import org.hamcrest.core.IsNull;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
-import static java.util.Arrays.*;
+import static java.util.Arrays.asList;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.*;
-import static org.hamcrest.core.IsEqual.*;
-import static org.hamcrest.core.IsInstanceOf.*;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
/** @author Daniel Bechler */
public class MapEntryAccessorShould
diff --git a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorBuilder.java b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorBuilder.java
old mode 100644
new mode 100755
similarity index 94%
rename from src/test/java/de/danielbechler/diff/accessor/PropertyAccessorBuilder.java
rename to src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorBuilder.java
index 7bf10a29..12ffbd8d
--- a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorBuilder.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorBuilder.java
@@ -14,9 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import java.lang.reflect.*;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+
+import java.lang.reflect.Method;
/** @author Daniel Bechler */
public final class PropertyAccessorBuilder
diff --git a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForCollectionsShould.java b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForCollectionsShould.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForCollectionsShould.java
rename to src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForCollectionsShould.java
index 9ea278ff..e0c748da
--- a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForCollectionsShould.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForCollectionsShould.java
@@ -14,13 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.mock.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.mock.ObjectWithCollection;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.lang.reflect.*;
-import java.util.*;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
diff --git a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForMapsShould.java b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForMapsShould.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForMapsShould.java
rename to src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForMapsShould.java
index a2e95200..116d50df
--- a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorForMapsShould.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorForMapsShould.java
@@ -14,13 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.mock.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.mock.ObjectWithMap;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.lang.reflect.*;
-import java.util.*;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
import static java.util.Collections.singletonMap;
import static org.fest.assertions.api.Assertions.assertThat;
diff --git a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorShould.java b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorShould.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/test/java/de/danielbechler/diff/accessor/PropertyAccessorShould.java
rename to src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorShould.java
index 53b871fc..9cdb6862
--- a/src/test/java/de/danielbechler/diff/accessor/PropertyAccessorShould.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/PropertyAccessorShould.java
@@ -14,19 +14,24 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
-
-import de.danielbechler.diff.accessor.exception.*;
-import de.danielbechler.diff.annotation.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.testng.annotations.*;
-
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-
-import static java.util.Arrays.*;
-import static org.fest.assertions.api.Assertions.*;
+package in.th3iedkid.diff.accessor;
+
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.accessor.exception.PropertyReadException;
+import in.th3iedkid.diff.accessor.exception.PropertyWriteException;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
+import in.th3iedkid.diff.mock.ObjectWithAnnotatedProperty;
+import in.th3iedkid.diff.mock.ObjectWithHashCodeAndEquals;
+import in.th3iedkid.diff.mock.ObjectWithStringAndUnsupportedWriteMethod;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+
+import static java.util.Arrays.asList;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class PropertyAccessorShould
diff --git a/src/test/java/de/danielbechler/diff/accessor/RootAccessorTest.java b/src/test/java/in/th3iedkid/diff/accessor/RootAccessorTest.java
old mode 100644
new mode 100755
similarity index 77%
rename from src/test/java/de/danielbechler/diff/accessor/RootAccessorTest.java
rename to src/test/java/in/th3iedkid/diff/accessor/RootAccessorTest.java
index f370fe8b..7a244f60
--- a/src/test/java/de/danielbechler/diff/accessor/RootAccessorTest.java
+++ b/src/test/java/in/th3iedkid/diff/accessor/RootAccessorTest.java
@@ -14,15 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff.accessor;
+package in.th3iedkid.diff.accessor;
-import de.danielbechler.diff.path.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.RootAccessor;
+import in.th3iedkid.diff.path.RootElement;
+import org.testng.annotations.Test;
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.core.Is.*;
-import static org.hamcrest.core.IsInstanceOf.*;
-import static org.hamcrest.core.IsSame.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
+import static org.hamcrest.core.IsSame.sameInstance;
/** @author Daniel Bechler */
public class RootAccessorTest
diff --git a/src/test/java/de/danielbechler/diff/extension/AssertionsExtensions.java b/src/test/java/in/th3iedkid/diff/extension/AssertionsExtensions.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/extension/AssertionsExtensions.java
rename to src/test/java/in/th3iedkid/diff/extension/AssertionsExtensions.java
index 7160d9fd..80af79a5
--- a/src/test/java/de/danielbechler/diff/extension/AssertionsExtensions.java
+++ b/src/test/java/in/th3iedkid/diff/extension/AssertionsExtensions.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.extension;
+package in.th3iedkid.diff.extension;
-import org.fest.assertions.core.*;
+import org.fest.assertions.core.Condition;
/** @author Daniel Bechler */
public class AssertionsExtensions
diff --git a/src/test/java/de/danielbechler/diff/extension/MockitoExtensions.java b/src/test/java/in/th3iedkid/diff/extension/MockitoExtensions.java
old mode 100644
new mode 100755
similarity index 88%
rename from src/test/java/de/danielbechler/diff/extension/MockitoExtensions.java
rename to src/test/java/in/th3iedkid/diff/extension/MockitoExtensions.java
index e865cb30..d385de3d
--- a/src/test/java/de/danielbechler/diff/extension/MockitoExtensions.java
+++ b/src/test/java/in/th3iedkid/diff/extension/MockitoExtensions.java
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.extension;
+package in.th3iedkid.diff.extension;
-import org.mockito.invocation.*;
-import org.mockito.stubbing.*;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
/** @author Daniel Bechler */
public class MockitoExtensions
diff --git a/src/test/java/de/danielbechler/diff/integration/AdditionIntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/AdditionIntegrationTest.java
old mode 100644
new mode 100755
similarity index 79%
rename from src/test/java/de/danielbechler/diff/integration/AdditionIntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/AdditionIntegrationTest.java
index cf599b4c..3e9eb2ac
--- a/src/test/java/de/danielbechler/diff/integration/AdditionIntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/AdditionIntegrationTest.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.node.Node;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.node.NodeAssertions.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
/** @author Daniel Bechler */
public class AdditionIntegrationTest
diff --git a/src/test/java/de/danielbechler/diff/integration/Contact.java b/src/test/java/in/th3iedkid/diff/integration/Contact.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/test/java/de/danielbechler/diff/integration/Contact.java
rename to src/test/java/in/th3iedkid/diff/integration/Contact.java
index c958c6ff..12e54a21
--- a/src/test/java/de/danielbechler/diff/integration/Contact.java
+++ b/src/test/java/in/th3iedkid/diff/integration/Contact.java
@@ -14,12 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.annotation.*;
-import de.danielbechler.util.*;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
+import in.th3iedkid.util.Strings;
-import java.util.*;
+import java.util.LinkedHashMap;
+import java.util.Map;
/** @author Daniel Bechler */
public class Contact
diff --git a/src/test/java/de/danielbechler/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java
old mode 100644
new mode 100755
similarity index 76%
rename from src/test/java/de/danielbechler/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java
index 91d7e25b..e4e7b410
--- a/src/test/java/de/danielbechler/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/DeepDiffingCollectionItemChangeIntegrationTest.java
@@ -14,18 +14,20 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.NodeHierarchyVisitor;
+import org.testng.annotations.Test;
-import java.util.*;
+import java.util.Collections;
+import java.util.Map;
-import static de.danielbechler.diff.node.NodeAssertions.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
/** @author Daniel Bechler */
public class DeepDiffingCollectionItemChangeIntegrationTest
diff --git a/src/test/java/de/danielbechler/diff/integration/GettingStarted.java b/src/test/java/in/th3iedkid/diff/integration/GettingStarted.java
old mode 100644
new mode 100755
similarity index 90%
rename from src/test/java/de/danielbechler/diff/integration/GettingStarted.java
rename to src/test/java/in/th3iedkid/diff/integration/GettingStarted.java
index b374194d..a9536718
--- a/src/test/java/de/danielbechler/diff/integration/GettingStarted.java
+++ b/src/test/java/in/th3iedkid/diff/integration/GettingStarted.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
/** @author Daniel Bechler */
public class GettingStarted
diff --git a/src/test/java/de/danielbechler/diff/integration/IgnoreIntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/IgnoreIntegrationTest.java
old mode 100644
new mode 100755
similarity index 83%
rename from src/test/java/de/danielbechler/diff/integration/IgnoreIntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/IgnoreIntegrationTest.java
index a4f8a94a..c58c57f6
--- a/src/test/java/de/danielbechler/diff/integration/IgnoreIntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/IgnoreIntegrationTest.java
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithCircularReference;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.node.NodeAssertions.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
/** @author Daniel Bechler */
public class IgnoreIntegrationTest
diff --git a/src/test/java/de/danielbechler/diff/integration/PhoneBook.java b/src/test/java/in/th3iedkid/diff/integration/PhoneBook.java
old mode 100644
new mode 100755
similarity index 88%
rename from src/test/java/de/danielbechler/diff/integration/PhoneBook.java
rename to src/test/java/in/th3iedkid/diff/integration/PhoneBook.java
index 2eb77c7d..ae5a10ec
--- a/src/test/java/de/danielbechler/diff/integration/PhoneBook.java
+++ b/src/test/java/in/th3iedkid/diff/integration/PhoneBook.java
@@ -14,11 +14,13 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Strings;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
/** @author Daniel Bechler */
public class PhoneBook
@@ -87,9 +89,9 @@ public String toString()
for (final Contact contact : contacts)
{
final String name = Strings.join(" ",
- contact.getFirstName(),
- contact.getMiddleName(),
- contact.getLastName());
+ contact.getFirstName(),
+ contact.getMiddleName(),
+ contact.getLastName());
sb.append(name).append(":\n");
for (final Map.Entry entry : contact.getPhoneNumbers().entrySet())
{
diff --git a/src/test/java/de/danielbechler/diff/integration/PhoneBookTest.java b/src/test/java/in/th3iedkid/diff/integration/PhoneBookTest.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/test/java/de/danielbechler/diff/integration/PhoneBookTest.java
rename to src/test/java/in/th3iedkid/diff/integration/PhoneBookTest.java
index 768e9956..0a3578a3
--- a/src/test/java/de/danielbechler/diff/integration/PhoneBookTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/PhoneBookTest.java
@@ -14,16 +14,18 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import org.hamcrest.core.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.CollectionElement;
+import org.hamcrest.core.IsEqual;
+import org.hamcrest.core.IsNull;
+import org.testng.annotations.Test;
-import static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.core.Is.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
/** @author Daniel Bechler */
public class PhoneBookTest
diff --git a/src/test/java/de/danielbechler/diff/integration/PhoneNumber.java b/src/test/java/in/th3iedkid/diff/integration/PhoneNumber.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/integration/PhoneNumber.java
rename to src/test/java/in/th3iedkid/diff/integration/PhoneNumber.java
index 81a36091..d77436fa
--- a/src/test/java/de/danielbechler/diff/integration/PhoneNumber.java
+++ b/src/test/java/in/th3iedkid/diff/integration/PhoneNumber.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffEqualsOnlyType;
/** @author Daniel Bechler */
@ObjectDiffEqualsOnlyType
diff --git a/src/test/java/de/danielbechler/diff/integration/TestCase.java b/src/test/java/in/th3iedkid/diff/integration/TestCase.java
old mode 100644
new mode 100755
similarity index 93%
rename from src/test/java/de/danielbechler/diff/integration/TestCase.java
rename to src/test/java/in/th3iedkid/diff/integration/TestCase.java
index ce13ec34..673f221b
--- a/src/test/java/de/danielbechler/diff/integration/TestCase.java
+++ b/src/test/java/in/th3iedkid/diff/integration/TestCase.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration;
+package in.th3iedkid.diff.integration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
public class TestCase
{
diff --git a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java
old mode 100644
new mode 100755
similarity index 77%
rename from src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java
rename to src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java
index a393aa47..21a971b9
--- a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnEqualsTest.java
@@ -14,15 +14,18 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration.graph;
+package in.th3iedkid.diff.integration.graph;
-import de.danielbechler.diff.Configuration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.Configuration;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithNestedObject;
+import in.th3iedkid.diff.node.NodeAssertions;
+import in.th3iedkid.diff.node.Node;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.Configuration.CircularReferenceMatchingMode.*;
+import static in.th3iedkid.diff.Configuration.CircularReferenceMatchingMode.EQUALS_METHOD;
/** @author Daniel Bechler */
public class CircularReferenceDetectionBasedOnEqualsTest
diff --git a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java
old mode 100644
new mode 100755
similarity index 78%
rename from src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java
rename to src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java
index 1ecf9e39..73715142
--- a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceDetectionBasedOnIdentityTest.java
@@ -14,15 +14,18 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration.graph;
+package in.th3iedkid.diff.integration.graph;
-import de.danielbechler.diff.Configuration;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.Configuration;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithNestedObject;
+import in.th3iedkid.diff.node.NodeAssertions;
+import in.th3iedkid.diff.node.Node;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.Configuration.CircularReferenceMatchingMode.*;
+import static in.th3iedkid.diff.Configuration.CircularReferenceMatchingMode.EQUALITY_OPERATOR;
/** @author Daniel Bechler */
public class CircularReferenceDetectionBasedOnIdentityTest
diff --git a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceIntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceIntegrationTest.java
old mode 100644
new mode 100755
similarity index 85%
rename from src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceIntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceIntegrationTest.java
index 3d7bede0..7e52c371
--- a/src/test/java/de/danielbechler/diff/integration/graph/CircularReferenceIntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/graph/CircularReferenceIntegrationTest.java
@@ -14,17 +14,18 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration.graph;
+package in.th3iedkid.diff.integration.graph;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import org.fest.assertions.api.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithCircularReference;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
+import org.fest.assertions.api.Assertions;
+import org.testng.annotations.Test;
-import static de.danielbechler.diff.node.NodeAssertions.*;
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
/** @author Daniel Bechler */
public class CircularReferenceIntegrationTest
diff --git a/src/test/java/de/danielbechler/diff/integration/graph/GraphIntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/graph/GraphIntegrationTest.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/test/java/de/danielbechler/diff/integration/graph/GraphIntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/graph/GraphIntegrationTest.java
index 3fbb927f..4333a492
--- a/src/test/java/de/danielbechler/diff/integration/graph/GraphIntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/graph/GraphIntegrationTest.java
@@ -14,17 +14,20 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration.graph;
-
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.Configuration;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.visitor.*;
-import org.testng.annotations.*;
-
-import static de.danielbechler.diff.node.Node.State.*;
-import static de.danielbechler.diff.node.NodeAssertions.assertThat;
-import static de.danielbechler.diff.path.PropertyPath.*;
+package in.th3iedkid.diff.integration.graph;
+
+import in.th3iedkid.diff.Configuration;
+import in.th3iedkid.diff.ObjectDiffer;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.NodeAssertions;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.NodeHierarchyVisitor;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
+import org.testng.annotations.Test;
+
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
+import static in.th3iedkid.diff.node.Node.State.CHANGED;
+import static in.th3iedkid.diff.path.PropertyPath.createBuilder;
import static org.fest.assertions.api.Assertions.assertThat;
/**
diff --git a/src/test/java/de/danielbechler/diff/integration/graph/GraphNode.java b/src/test/java/in/th3iedkid/diff/integration/graph/GraphNode.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/test/java/de/danielbechler/diff/integration/graph/GraphNode.java
rename to src/test/java/in/th3iedkid/diff/integration/graph/GraphNode.java
index f0fc2854..6ce3b57b
--- a/src/test/java/de/danielbechler/diff/integration/graph/GraphNode.java
+++ b/src/test/java/in/th3iedkid/diff/integration/graph/GraphNode.java
@@ -14,13 +14,17 @@
* limitations under the License.
*/
-package de.danielbechler.diff.integration.graph;
+package in.th3iedkid.diff.integration.graph;
-import org.slf4j.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import java.util.*;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
-import static java.util.Arrays.*;
+import static java.util.Arrays.asList;
/**
* @author https://github.com/oplohmann (original author)
diff --git a/src/test/java/de/danielbechler/diff/integration/issues/Issue43IntegrationTest.java b/src/test/java/in/th3iedkid/diff/integration/issues/Issue43IntegrationTest.java
old mode 100644
new mode 100755
similarity index 84%
rename from src/test/java/de/danielbechler/diff/integration/issues/Issue43IntegrationTest.java
rename to src/test/java/in/th3iedkid/diff/integration/issues/Issue43IntegrationTest.java
index dea9f2b8..6e837c66
--- a/src/test/java/de/danielbechler/diff/integration/issues/Issue43IntegrationTest.java
+++ b/src/test/java/in/th3iedkid/diff/integration/issues/Issue43IntegrationTest.java
@@ -1,16 +1,18 @@
-package de.danielbechler.diff.integration.issues;
+package in.th3iedkid.diff.integration.issues;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.Configuration;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.testng.annotations.Test;
-import java.util.*;
+import java.util.List;
+import java.util.Set;
-import static java.util.Arrays.*;
-import static java.util.Collections.*;
-import static org.hamcrest.CoreMatchers.*;
-import static org.hamcrest.MatcherAssert.*;
+import static java.util.Arrays.asList;
+import static java.util.Collections.singleton;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
/** https://github.com/SQiShER/java-object-diff/issues/43 */
@SuppressWarnings("ALL")
@@ -144,7 +146,7 @@ public int hashCode()
public void shouldDiffThings()
{
final List propertyNames = asList("things", "include");
- de.danielbechler.diff.Configuration configuration = new de.danielbechler.diff.Configuration();
+ in.th3iedkid.diff.Configuration configuration = new Configuration();
for (final String name : propertyNames)
{
final PropertyPath propertyPath = PropertyPath.buildWith(name);
diff --git a/src/test/java/de/danielbechler/diff/introspect/StandardIntrospectorTest.java b/src/test/java/in/th3iedkid/diff/introspect/StandardIntrospectorTest.java
old mode 100644
new mode 100755
similarity index 82%
rename from src/test/java/de/danielbechler/diff/introspect/StandardIntrospectorTest.java
rename to src/test/java/in/th3iedkid/diff/introspect/StandardIntrospectorTest.java
index ce23d689..a8bd1597
--- a/src/test/java/de/danielbechler/diff/introspect/StandardIntrospectorTest.java
+++ b/src/test/java/in/th3iedkid/diff/introspect/StandardIntrospectorTest.java
@@ -14,18 +14,25 @@
* limitations under the License.
*/
-package de.danielbechler.diff.introspect;
+package in.th3iedkid.diff.introspect;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import de.danielbechler.util.*;
-import org.hamcrest.core.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.mock.ObjectWithEqualsOnlyPropertyType;
+import in.th3iedkid.diff.mock.ObjectWithInheritedPropertyAnnotation;
+import in.th3iedkid.diff.mock.ObjectWithPropertyAnnotations;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.introspect.StandardIntrospector;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.util.Collections;
+import org.hamcrest.core.Is;
+import org.hamcrest.core.IsEqual;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import java.beans.*;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
-import static org.hamcrest.MatcherAssert.*;
+import static org.hamcrest.MatcherAssert.assertThat;
/** @author Daniel Bechler */
public class StandardIntrospectorTest
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectDiffTest.java b/src/test/java/in/th3iedkid/diff/mock/ObjectDiffTest.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/mock/ObjectDiffTest.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectDiffTest.java
index ce1fad83..b4eae917
--- a/src/test/java/de/danielbechler/diff/mock/ObjectDiffTest.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectDiffTest.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffAnnotation;
import java.lang.annotation.*;
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java
index ce639d92..c94da793
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithAccessTrackingIgnoredProperty.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
/** @author Daniel Bechler */
@SuppressWarnings({"MethodMayBeStatic", "UnusedDeclaration"})
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithAnnotatedProperty.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithAnnotatedProperty.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithAnnotatedProperty.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithAnnotatedProperty.java
index 437d329b..eaf54598
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithAnnotatedProperty.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithAnnotatedProperty.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
/** @author Daniel Bechler */
public class ObjectWithAnnotatedProperty
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithCircularReference.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCircularReference.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithCircularReference.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithCircularReference.java
index 81dc3c75..c124f462
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithCircularReference.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCircularReference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithCircularReference
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithCollection.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCollection.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithCollection.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithCollection.java
index 6aea5e25..aaea9cb3
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithCollection.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCollection.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import java.util.*;
+import java.util.Collection;
+import java.util.LinkedList;
/** @author Daniel Bechler */
public class ObjectWithCollection
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithCompareTo.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCompareTo.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithCompareTo.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithCompareTo.java
index 2e5baf92..ec339ee4
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithCompareTo.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithCompareTo.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.util.Assert;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public class ObjectWithCompareTo implements Comparable
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithEqualsOnlyPropertyType.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithEqualsOnlyPropertyType.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithEqualsOnlyPropertyType.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithEqualsOnlyPropertyType.java
index 83582cf3..ebf4765c
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithEqualsOnlyPropertyType.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithEqualsOnlyPropertyType.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithEqualsOnlyPropertyType
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java
index b985e380..ed836dc8
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithExceptionThrowingDefaultConstructor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithExceptionThrowingDefaultConstructor
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithHashCodeAndEquals.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithHashCodeAndEquals.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithHashCodeAndEquals.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithHashCodeAndEquals.java
index 5631f2ce..afc468fe
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithHashCodeAndEquals.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithHashCodeAndEquals.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public class ObjectWithHashCodeAndEquals
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithIdentityAndValue.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithIdentityAndValue.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithIdentityAndValue.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithIdentityAndValue.java
index ee08fdd6..821d8465
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithIdentityAndValue.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithIdentityAndValue.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import static de.danielbechler.util.Assert.*;
+import static in.th3iedkid.util.Assert.hasText;
/** @author Daniel Bechler */
public class ObjectWithIdentityAndValue
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithIgnoredMap.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithIgnoredMap.java
old mode 100644
new mode 100755
similarity index 87%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithIgnoredMap.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithIgnoredMap.java
index bd726437..86813b69
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithIgnoredMap.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithIgnoredMap.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
-import java.util.*;
+import java.util.Map;
/** @author Daniel Bechler */
public class ObjectWithIgnoredMap extends ObjectWithMap
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithInheritedPropertyAnnotation.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithInheritedPropertyAnnotation.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithInheritedPropertyAnnotation.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithInheritedPropertyAnnotation.java
index afc645a1..1a839106
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithInheritedPropertyAnnotation.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithInheritedPropertyAnnotation.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
@SuppressWarnings({"UnusedDeclaration"})
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithMap.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithMap.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithMap.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithMap.java
index 9ac4d039..247b0e43
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithMap.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithMap.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import java.util.*;
+import java.util.Map;
+import java.util.TreeMap;
/** @author Daniel Bechler */
public class ObjectWithMap
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithNestedObject.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithNestedObject.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithNestedObject.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithNestedObject.java
index 102db1a9..16be0d6d
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithNestedObject.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithNestedObject.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.util.*;
+import in.th3iedkid.util.Assert;
/** @author Daniel Bechler */
public class ObjectWithNestedObject
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithPrimitiveProperties.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPrimitiveProperties.java
old mode 100644
new mode 100755
similarity index 98%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithPrimitiveProperties.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithPrimitiveProperties.java
index 5e9161d2..1cdcfc26
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithPrimitiveProperties.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPrimitiveProperties.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithPrimitiveProperties
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithPrivateDefaultConstructor.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPrivateDefaultConstructor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithPrivateDefaultConstructor.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithPrivateDefaultConstructor.java
index 058d988d..0861c980
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithPrivateDefaultConstructor.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPrivateDefaultConstructor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithPrivateDefaultConstructor
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithPropertyAnnotations.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPropertyAnnotations.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithPropertyAnnotations.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithPropertyAnnotations.java
index a16f4d77..8b53365d
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithPropertyAnnotations.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithPropertyAnnotations.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
-import de.danielbechler.diff.annotation.*;
+import in.th3iedkid.diff.annotation.ObjectDiffEqualsOnlyType;
+import in.th3iedkid.diff.annotation.ObjectDiffProperty;
/** @author Daniel Bechler */
@ObjectDiffEqualsOnlyType
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithString.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithString.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithString.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithString.java
index a3e99d41..f52d0156
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithString.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithString.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
@SuppressWarnings({
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndCompareTo.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndCompareTo.java
old mode 100644
new mode 100755
similarity index 97%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndCompareTo.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndCompareTo.java
index f4e90c0d..f1198f7f
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndCompareTo.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndCompareTo.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
@SuppressWarnings({
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java
old mode 100644
new mode 100755
similarity index 96%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java
index 4d8af572..07d215df
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithStringAndUnsupportedWriteMethod.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithStringAndUnsupportedWriteMethod extends ObjectWithString
diff --git a/src/test/java/de/danielbechler/diff/mock/ObjectWithoutDefaultConstructor.java b/src/test/java/in/th3iedkid/diff/mock/ObjectWithoutDefaultConstructor.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/mock/ObjectWithoutDefaultConstructor.java
rename to src/test/java/in/th3iedkid/diff/mock/ObjectWithoutDefaultConstructor.java
index 9610bcf2..0b3e9191
--- a/src/test/java/de/danielbechler/diff/mock/ObjectWithoutDefaultConstructor.java
+++ b/src/test/java/in/th3iedkid/diff/mock/ObjectWithoutDefaultConstructor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.danielbechler.diff.mock;
+package in.th3iedkid.diff.mock;
/** @author Daniel Bechler */
public class ObjectWithoutDefaultConstructor
diff --git a/src/test/java/de/danielbechler/diff/node/DefaultNodeTest.java b/src/test/java/in/th3iedkid/diff/node/DefaultNodeTest.java
old mode 100644
new mode 100755
similarity index 89%
rename from src/test/java/de/danielbechler/diff/node/DefaultNodeTest.java
rename to src/test/java/in/th3iedkid/diff/node/DefaultNodeTest.java
index 6473e529..9293dbd1
--- a/src/test/java/de/danielbechler/diff/node/DefaultNodeTest.java
+++ b/src/test/java/in/th3iedkid/diff/node/DefaultNodeTest.java
@@ -14,24 +14,34 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
-
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.fest.assertions.api.*;
-import org.hamcrest.core.*;
-import org.testng.annotations.*;
-
-import java.lang.annotation.*;
-import java.util.*;
+package in.th3iedkid.diff.node;
+
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.accessor.CollectionItemAccessor;
+import in.th3iedkid.diff.accessor.PropertyAccessor;
+import in.th3iedkid.diff.mock.ObjectDiffTest;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.fest.assertions.api.Assertions;
+import org.hamcrest.core.Is;
+import org.mockito.Mock;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.*;
+import static org.mockito.MockitoAnnotations.initMocks;
-/** @author Daniel Bechler */
+/** @author Daniel Bechler
+ * @author th3iedkid changed for mockito deprecation
+ * */
public class DefaultNodeTest
{
@Mock
diff --git a/src/test/java/de/danielbechler/diff/node/MapEntryNode.java b/src/test/java/in/th3iedkid/diff/node/MapEntryNode.java
old mode 100644
new mode 100755
similarity index 83%
rename from src/test/java/de/danielbechler/diff/node/MapEntryNode.java
rename to src/test/java/in/th3iedkid/diff/node/MapEntryNode.java
index 7307915f..e16f7ae8
--- a/src/test/java/de/danielbechler/diff/node/MapEntryNode.java
+++ b/src/test/java/in/th3iedkid/diff/node/MapEntryNode.java
@@ -14,11 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
+package in.th3iedkid.diff.node;
-import de.danielbechler.diff.accessor.*;
+import in.th3iedkid.diff.accessor.MapEntryAccessor;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.MapNode;
+import in.th3iedkid.diff.node.Node;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
/**
* This class is not yet ready. Probably turns out to be useless.
diff --git a/src/test/java/de/danielbechler/diff/node/NodeAssertions.java b/src/test/java/in/th3iedkid/diff/node/NodeAssertions.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/node/NodeAssertions.java
rename to src/test/java/in/th3iedkid/diff/node/NodeAssertions.java
index 1ae86d0b..e88a085c
--- a/src/test/java/de/danielbechler/diff/node/NodeAssertions.java
+++ b/src/test/java/in/th3iedkid/diff/node/NodeAssertions.java
@@ -14,12 +14,15 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
-
-import de.danielbechler.diff.path.*;
-import de.danielbechler.diff.visitor.*;
-import org.fest.assertions.api.*;
-import org.fest.assertions.core.*;
+package in.th3iedkid.diff.node;
+
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.CollectionElement;
+import in.th3iedkid.diff.path.Element;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.PropertyVisitor;
+import org.fest.assertions.api.Assertions;
+import org.fest.assertions.core.Condition;
/** @author Daniel Bechler */
public final class NodeAssertions
diff --git a/src/test/java/de/danielbechler/diff/node/NodeAssertionsTest.java b/src/test/java/in/th3iedkid/diff/node/NodeAssertionsTest.java
old mode 100644
new mode 100755
similarity index 91%
rename from src/test/java/de/danielbechler/diff/node/NodeAssertionsTest.java
rename to src/test/java/in/th3iedkid/diff/node/NodeAssertionsTest.java
index 06854104..c6ae6f0a
--- a/src/test/java/de/danielbechler/diff/node/NodeAssertionsTest.java
+++ b/src/test/java/in/th3iedkid/diff/node/NodeAssertionsTest.java
@@ -14,16 +14,20 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
-
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.accessor.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.path.*;
-import org.testng.annotations.*;
-
-import static de.danielbechler.diff.node.NodeAssertions.*;
-import static org.mockito.Mockito.*;
+package in.th3iedkid.diff.node;
+
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.accessor.Accessor;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.NamedPropertyElement;
+import in.th3iedkid.diff.path.PropertyPath;
+import org.testng.annotations.Test;
+
+import static in.th3iedkid.diff.node.NodeAssertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
/** @author Daniel Bechler */
public class NodeAssertionsTest
diff --git a/src/test/java/de/danielbechler/diff/node/TypeAwareNode.java b/src/test/java/in/th3iedkid/diff/node/TypeAwareNode.java
old mode 100644
new mode 100755
similarity index 85%
rename from src/test/java/de/danielbechler/diff/node/TypeAwareNode.java
rename to src/test/java/in/th3iedkid/diff/node/TypeAwareNode.java
index 8dcdc8bc..a414404f
--- a/src/test/java/de/danielbechler/diff/node/TypeAwareNode.java
+++ b/src/test/java/in/th3iedkid/diff/node/TypeAwareNode.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package de.danielbechler.diff.node;
+package in.th3iedkid.diff.node;
-import de.danielbechler.diff.accessor.*;
+import in.th3iedkid.diff.accessor.TypeAwareAccessor;
+import in.th3iedkid.diff.node.Node;
/** @author Daniel Bechler */
public interface TypeAwareNode extends Node, TypeAwareAccessor
diff --git a/src/test/java/de/danielbechler/diff/path/PropertyPathBuilderTest.java b/src/test/java/in/th3iedkid/diff/path/PropertyPathBuilderTest.java
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/diff/path/PropertyPathBuilderTest.java
rename to src/test/java/in/th3iedkid/diff/path/PropertyPathBuilderTest.java
index 3c9bfb28..3718114a
--- a/src/test/java/de/danielbechler/diff/path/PropertyPathBuilderTest.java
+++ b/src/test/java/in/th3iedkid/diff/path/PropertyPathBuilderTest.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package de.danielbechler.diff.path;
+package in.th3iedkid.diff.path;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.path.*;
+import org.testng.annotations.Test;
-import static org.fest.assertions.api.Assertions.*;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class PropertyPathBuilderTest
diff --git a/src/test/java/de/danielbechler/diff/visitor/PrintingVisitorTest.java b/src/test/java/in/th3iedkid/diff/visitor/PrintingVisitorTest.java
old mode 100644
new mode 100755
similarity index 86%
rename from src/test/java/de/danielbechler/diff/visitor/PrintingVisitorTest.java
rename to src/test/java/in/th3iedkid/diff/visitor/PrintingVisitorTest.java
index 68b63319..00e952ae
--- a/src/test/java/de/danielbechler/diff/visitor/PrintingVisitorTest.java
+++ b/src/test/java/in/th3iedkid/diff/visitor/PrintingVisitorTest.java
@@ -14,14 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.ObjectDifferFactory;
+import in.th3iedkid.diff.mock.ObjectWithCircularReference;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.visitor.PrintingVisitor;
+import org.testng.annotations.Test;
-import static org.fest.assertions.api.Assertions.*;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class PrintingVisitorTest
diff --git a/src/test/java/de/danielbechler/diff/visitor/ToMapPrintingVisitorTest.java b/src/test/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitorTest.java
old mode 100644
new mode 100755
similarity index 92%
rename from src/test/java/de/danielbechler/diff/visitor/ToMapPrintingVisitorTest.java
rename to src/test/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitorTest.java
index e2075e55..2d78f64c
--- a/src/test/java/de/danielbechler/diff/visitor/ToMapPrintingVisitorTest.java
+++ b/src/test/java/in/th3iedkid/diff/visitor/ToMapPrintingVisitorTest.java
@@ -14,13 +14,16 @@
* limitations under the License.
*/
-package de.danielbechler.diff.visitor;
+package in.th3iedkid.diff.visitor;
-import de.danielbechler.diff.node.*;
-import de.danielbechler.diff.path.*;
-import org.testng.annotations.*;
+import in.th3iedkid.diff.node.DefaultNode;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.diff.path.PropertyPath;
+import in.th3iedkid.diff.visitor.ToMapPrintingVisitor;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
-import static org.fest.assertions.api.Assertions.*;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class ToMapPrintingVisitorTest
diff --git a/src/test/java/de/danielbechler/util/ClassesSpecification.groovy b/src/test/java/in/th3iedkid/util/ClassesSpecification.groovy
old mode 100644
new mode 100755
similarity index 95%
rename from src/test/java/de/danielbechler/util/ClassesSpecification.groovy
rename to src/test/java/in/th3iedkid/util/ClassesSpecification.groovy
index 130e2342..c201102e
--- a/src/test/java/de/danielbechler/util/ClassesSpecification.groovy
+++ b/src/test/java/in/th3iedkid/util/ClassesSpecification.groovy
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package de.danielbechler.util
+package in.th3iedkid.diff.util
+import in.th3iedkid.util.Classes
import spock.lang.Specification
import spock.lang.Unroll
diff --git a/src/test/java/de/danielbechler/util/ClassesTest.java b/src/test/java/in/th3iedkid/util/ClassesTest.java
old mode 100644
new mode 100755
similarity index 86%
rename from src/test/java/de/danielbechler/util/ClassesTest.java
rename to src/test/java/in/th3iedkid/util/ClassesTest.java
index 54ad4cba..df481ab6
--- a/src/test/java/de/danielbechler/util/ClassesTest.java
+++ b/src/test/java/in/th3iedkid/util/ClassesTest.java
@@ -14,18 +14,26 @@
* limitations under the License.
*/
-package de.danielbechler.util;
-
-import de.danielbechler.diff.integration.*;
-import de.danielbechler.diff.mock.*;
-import de.danielbechler.diff.node.*;
-import org.testng.annotations.*;
-
-import java.net.*;
-import java.text.*;
+package in.th3iedkid.util;
+
+import in.th3iedkid.diff.integration.Contact;
+import in.th3iedkid.diff.integration.PhoneBook;
+import in.th3iedkid.diff.integration.PhoneNumber;
+import in.th3iedkid.diff.mock.ObjectWithExceptionThrowingDefaultConstructor;
+import in.th3iedkid.diff.mock.ObjectWithPrivateDefaultConstructor;
+import in.th3iedkid.diff.mock.ObjectWithString;
+import in.th3iedkid.diff.mock.ObjectWithoutDefaultConstructor;
+import in.th3iedkid.diff.node.Node;
+import in.th3iedkid.util.Classes;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.net.URI;
+import java.net.URL;
+import java.text.Collator;
import java.util.*;
-import static org.fest.assertions.api.Assertions.*;
+import static org.fest.assertions.api.Assertions.assertThat;
/** @author Daniel Bechler */
public class ClassesTest