Move TestClock in opencensus-testing package. (#368)

diff --git a/api/build.gradle b/api/build.gradle
index 8d2967b..3834f05 100644
--- a/api/build.gradle
+++ b/api/build.gradle
@@ -1,8 +1,9 @@
-description = 'OpenCensus: API'
+description = 'OpenCensus API'
 
 dependencies {
     compile libraries.grpc_context,
             libraries.guava
+
     compileOnly libraries.auto_value
 
     signature "org.codehaus.mojo.signature:java16:+@signature"
diff --git a/core/build.gradle b/core/build.gradle
index 333dea0..1d2266c 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -8,8 +8,12 @@
     compile project(':opencensus-api'),
             libraries.grpc_context,
             libraries.guava
+
     compileOnly libraries.auto_value
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-testing')
+
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
 
diff --git a/core_impl/build.gradle b/core_impl/build.gradle
index 73593aa..44e0242 100644
--- a/core_impl/build.gradle
+++ b/core_impl/build.gradle
@@ -6,7 +6,10 @@
             project(':opencensus-impl-core'),
             libraries.guava
 
-    testCompile project(':core')
+    testCompile project(':core'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-testing')
 
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
index 1b4bdf7..86f344b 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/MeasurementDescriptorToViewMapTest.java
@@ -18,7 +18,7 @@
 
 import io.opencensus.common.Function;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import com.google.instrumentation.stats.MeasurementDescriptor.BasicUnit;
 import com.google.instrumentation.stats.MeasurementDescriptor.MeasurementUnit;
 import com.google.instrumentation.stats.View.DistributionView;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
index 1bc7cfd..e2ca9be 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextFactoryTest.java
@@ -17,7 +17,7 @@
 
 import io.opencensus.common.NonThrowingCloseable;
 import io.opencensus.internal.SimpleEventQueue;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.internal.VarInt;
 import io.grpc.Context;
 import java.io.ByteArrayInputStream;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
index 783506b..c30750c 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsContextTest.java
@@ -20,7 +20,7 @@
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Function;
 import io.opencensus.internal.SimpleEventQueue;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.internal.VarInt;
 import com.google.instrumentation.stats.View.DistributionView;
 import com.google.instrumentation.stats.View.IntervalView;
diff --git a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
index a5f7421..7297540 100644
--- a/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
+++ b/core_impl/src/test/java/com/google/instrumentation/stats/StatsManagerImplTest.java
@@ -19,7 +19,7 @@
 import io.opencensus.common.Duration;
 import io.opencensus.internal.SimpleEventQueue;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import com.google.instrumentation.stats.MeasurementDescriptor.BasicUnit;
 import com.google.instrumentation.stats.MeasurementDescriptor.MeasurementUnit;
 import com.google.instrumentation.stats.View.DistributionView;
diff --git a/core_impl_android/build.gradle b/core_impl_android/build.gradle
index 4d83058..d5dc088 100644
--- a/core_impl_android/build.gradle
+++ b/core_impl_android/build.gradle
@@ -4,5 +4,11 @@
     compile project(':core'),
             project(':core_impl')
 
+    testCompile project(':core'),
+            project(':core_impl'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-impl-lite')
+
     signature "net.sf.androidscents.signature:android-api-level-14:+@signature"
 }
diff --git a/core_impl_java/build.gradle b/core_impl_java/build.gradle
index 4c17d2b..de9b063 100644
--- a/core_impl_java/build.gradle
+++ b/core_impl_java/build.gradle
@@ -12,5 +12,11 @@
             project(':core_impl'),
             project(':opencensus-impl')
 
+    testCompile project(':core'),
+            project(':core_impl'),
+            project(':opencensus-api'),
+            project(':opencensus-impl-core'),
+            project(':opencensus-impl')
+
     signature "org.codehaus.mojo.signature:java17:+@signature"
 }
\ No newline at end of file
diff --git a/examples/build.gradle b/examples/build.gradle
index 480374a..9439bba 100644
--- a/examples/build.gradle
+++ b/examples/build.gradle
@@ -8,7 +8,9 @@
 dependencies {
     compile project(':core'),
             project(':core_impl'),
-            project(':core_impl_java')
+            project(':core_impl_java'),
+            project(':opencensus-api'),
+            project(':opencensus-impl')
 }
 
 // Provide convenience executables for trying out the examples.
diff --git a/impl/build.gradle b/impl/build.gradle
index be4e959..e885204 100644
--- a/impl/build.gradle
+++ b/impl/build.gradle
@@ -12,6 +12,9 @@
             project(':opencensus-impl-core'),
             libraries.disruptor
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-impl-core')
+
     signature "org.codehaus.mojo.signature:java17:+@signature"
 }
 
diff --git a/impl_core/build.gradle b/impl_core/build.gradle
index 70de8aa..4458d53 100644
--- a/impl_core/build.gradle
+++ b/impl_core/build.gradle
@@ -6,6 +6,9 @@
 
     compileOnly libraries.auto_value
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-testing')
+
     signature "org.codehaus.mojo.signature:java16:+@signature"
 }
 
diff --git a/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java b/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
index cf3dc59..3b42c2b 100644
--- a/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
+++ b/impl_core/src/main/java/io/opencensus/trace/config/TraceConfigImpl.java
@@ -22,9 +22,7 @@
   // operations are visible on other CPUs as well.
   private volatile TraceParams activeTraceParams = TraceParams.DEFAULT;
 
-  /**
-   * Constructs a new {@code TraceConfigImpl}.
-   */
+  /** Constructs a new {@code TraceConfigImpl}. */
   public TraceConfigImpl() {}
 
   @Override
diff --git a/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java b/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
index 00d051a..1d5cf3a 100644
--- a/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/SpanFactoryImplTest.java
@@ -16,7 +16,7 @@
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.when;
 
-import io.opencensus.internal.TestClock;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.trace.Span.Options;
 import io.opencensus.trace.SpanImpl.StartEndHandler;
 import io.opencensus.trace.base.SpanId;
diff --git a/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java b/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
index 62052dd..ed4aae7 100644
--- a/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/SpanImplTest.java
@@ -17,8 +17,8 @@
 
 import io.opencensus.common.Duration;
 import io.opencensus.common.Timestamp;
-import io.opencensus.internal.TestClock;
 import io.opencensus.internal.TimestampConverter;
+import io.opencensus.testing.common.TestClock;
 import io.opencensus.trace.Span.Options;
 import io.opencensus.trace.SpanImpl.StartEndHandler;
 import io.opencensus.trace.base.Annotation;
diff --git a/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java b/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
index dd7812a..9c1228a 100644
--- a/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/trace/propagation/PropagationComponentImplTest.java
@@ -26,7 +26,6 @@
 
   @Test
   public void implementationOfBinary() {
-    assertThat(propagationComponent.getBinaryFormat())
-        .isInstanceOf(BinaryFormatImpl.class);
+    assertThat(propagationComponent.getBinaryFormat()).isInstanceOf(BinaryFormatImpl.class);
   }
 }
diff --git a/impl_lite/build.gradle b/impl_lite/build.gradle
index 40cce82..30ba787 100644
--- a/impl_lite/build.gradle
+++ b/impl_lite/build.gradle
@@ -4,5 +4,8 @@
     compile project(':opencensus-api'),
             project(':opencensus-impl-core')
 
+    testCompile project(':opencensus-api'),
+            project(':opencensus-impl-core')
+
     signature "net.sf.androidscents.signature:android-api-level-14:+@signature"
 }
diff --git a/settings.gradle b/settings.gradle
index e7a8c4c..41395b1 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,6 +4,7 @@
 include ":opencensus-impl-core"
 include ":opencensus-impl-lite"
 include ":opencensus-impl"
+include ":opencensus-testing"
 include ":all"
 include ":core"
 include ":core_impl"
@@ -14,6 +15,7 @@
 project(':opencensus-impl-core').projectDir = "$rootDir/impl_core" as File
 project(':opencensus-impl-lite').projectDir = "$rootDir/impl_lite" as File
 project(':opencensus-impl').projectDir = "$rootDir/impl" as File
+project(':opencensus-testing').projectDir = "$rootDir/testing" as File
 
 // Java8 projects only
 if (JavaVersion.current().isJava8Compatible()) {
diff --git a/testing/README.md b/testing/README.md
new file mode 100644
index 0000000..268bbf3
--- /dev/null
+++ b/testing/README.md
@@ -0,0 +1,5 @@
+OpenCensus Testing Package
+======================================================
+
+* Java 6 and Android compatible.
+* The classes in this directory can be used to test the API integration.
diff --git a/testing/build.gradle b/testing/build.gradle
new file mode 100644
index 0000000..179ab71
--- /dev/null
+++ b/testing/build.gradle
@@ -0,0 +1,9 @@
+description = 'OpenCensus Testing'
+
+dependencies {
+    compile project(':opencensus-api')
+
+    testCompile project(':opencensus-api')
+
+    signature "org.codehaus.mojo.signature:java16:+@signature"
+}
diff --git a/api/src/main/java/io/opencensus/internal/TestClock.java b/testing/src/main/java/io/opencensus/testing/common/TestClock.java
similarity index 98%
rename from api/src/main/java/io/opencensus/internal/TestClock.java
rename to testing/src/main/java/io/opencensus/testing/common/TestClock.java
index d181da3..2a604f2 100644
--- a/api/src/main/java/io/opencensus/internal/TestClock.java
+++ b/testing/src/main/java/io/opencensus/testing/common/TestClock.java
@@ -11,7 +11,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.internal;
+package io.opencensus.testing.common;
 
 import com.google.common.math.LongMath;
 import io.opencensus.common.Clock;
diff --git a/api/src/test/java/io/opencensus/internal/TestClockTest.java b/testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
similarity index 97%
rename from api/src/test/java/io/opencensus/internal/TestClockTest.java
rename to testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
index fe3f80c..f67080c 100644
--- a/api/src/test/java/io/opencensus/internal/TestClockTest.java
+++ b/testing/src/test/java/io/opencensus/testing/common/TestClockTest.java
@@ -11,7 +11,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.internal;
+package io.opencensus.testing.common;
 
 import static com.google.common.truth.Truth.assertThat;