aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-03-28 12:36:47 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2017-03-28 19:51:04 +0000
commit3718a36c83657238f458076ddf5da957f6b54118 (patch)
tree38bb200c34b7aa1c280e853371818df1c04b2967 /src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java
parent78b8be6486d4cd0e1515e5cc19b865671e01c743 (diff)
DataSource Fixes
* Fix the overwrite algorithm to be handled entirely in the accumulators. * Improve the conflict error messages for attributes and simple values. * Refactor the UnwrittenDataSubject to top level for reuse. -- PiperOrigin-RevId: 151439084 MOS_MIGRATED_REVID=151439084
Diffstat (limited to 'src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java')
-rw-r--r--src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java b/src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java
new file mode 100644
index 0000000000..5d774a1155
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/android/UnwrittenMergedAndroidDataSubject.java
@@ -0,0 +1,71 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// 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 com.google.devtools.build.android;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.base.Objects;
+import com.google.common.truth.FailureStrategy;
+import com.google.common.truth.Subject;
+import com.google.common.truth.SubjectFactory;
+import javax.annotation.Nullable;
+
+class UnwrittenMergedAndroidDataSubject
+ extends Subject<UnwrittenMergedAndroidDataSubject, UnwrittenMergedAndroidData> {
+
+ static final SubjectFactory<UnwrittenMergedAndroidDataSubject, UnwrittenMergedAndroidData>
+ FACTORY =
+ new SubjectFactory<UnwrittenMergedAndroidDataSubject, UnwrittenMergedAndroidData>() {
+ @Override
+ public UnwrittenMergedAndroidDataSubject getSubject(
+ FailureStrategy fs, UnwrittenMergedAndroidData that) {
+ return new UnwrittenMergedAndroidDataSubject(fs, that);
+ }
+ };
+
+ public UnwrittenMergedAndroidDataSubject(
+ FailureStrategy failureStrategy, @Nullable UnwrittenMergedAndroidData subject) {
+ super(failureStrategy, subject);
+ }
+
+ public void isEqualTo(UnwrittenMergedAndroidData expected) {
+ UnwrittenMergedAndroidData subject = getSubject();
+ if (!Objects.equal(subject, expected)) {
+ if (subject == null) {
+ assertThat(subject).isEqualTo(expected);
+ }
+ if (subject.getManifest() != null) {
+ assertThat(subject.getManifest().toString())
+ .named("manifest")
+ .isEqualTo(expected.getManifest().toString());
+ }
+
+ compareDataSets("resources", subject.getPrimary(), expected.getPrimary());
+ compareDataSets("deps", subject.getTransitive(), expected.getTransitive());
+ }
+ }
+
+ private void compareDataSets(
+ String identifier, ParsedAndroidData subject, ParsedAndroidData expected) {
+ assertThat(subject.getOverwritingResources())
+ .named("Overwriting " + identifier)
+ .containsExactlyEntriesIn(expected.getOverwritingResources());
+ assertThat(subject.getCombiningResources())
+ .named("Combining " + identifier)
+ .containsExactlyEntriesIn(expected.getCombiningResources());
+ assertThat(subject.getAssets())
+ .named("Assets " + identifier)
+ .containsExactlyEntriesIn(expected.getAssets());
+ }
+}