Skip to content

Commit 83d6309

Browse files
committed
Core: Use mocks in TrackedFile tests.
1 parent 20bf72b commit 83d6309

1 file changed

Lines changed: 16 additions & 31 deletions

File tree

core/src/test/java/org/apache/iceberg/TestTrackedFileStruct.java

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@
2121
import static org.assertj.core.api.Assertions.assertThat;
2222

2323
import java.nio.ByteBuffer;
24-
import java.util.Comparator;
2524
import java.util.List;
2625
import org.apache.iceberg.TestHelpers.RoundTripSerializer;
2726
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
28-
import org.apache.iceberg.types.Comparators;
2927
import org.apache.iceberg.types.Types;
3028
import org.junit.jupiter.api.Test;
3129
import org.junit.jupiter.params.ParameterizedTest;
3230
import org.junit.jupiter.params.provider.MethodSource;
31+
import org.mockito.Mockito;
3332

3433
class TestTrackedFileStruct {
3534
private static final int FORMAT_VERSION_V4 = 4;
@@ -41,15 +40,16 @@ class TestTrackedFileStruct {
4140
private static final List<Types.NestedField> FIELDS =
4241
TrackedFile.schemaWithContentStats(PARTITION_TYPE, Types.StructType.of()).fields();
4342

44-
private static final Comparator<StructLike> PARTITION_COMPARATOR =
45-
Comparators.forType(PARTITION_TYPE);
46-
private static final Comparator<StructLike> TRACKING_COMPARATOR =
47-
Comparators.forType(Tracking.schema());
43+
private static final Tracking TRACKING = Mockito.mock(Tracking.class);
44+
private static final Tracking TRACKING_COPY = Mockito.mock(Tracking.class);
4845

49-
private static final Tracking TRACKING =
50-
new TrackingStruct(EntryStatus.ADDED, 42L, 10L, 10L, 43L, 1000L, null, null);
46+
private static final PartitionData PARTITION = Mockito.mock(PartitionData.class);
47+
private static final PartitionData PARTITION_COPY = Mockito.mock(PartitionData.class);
5148

52-
private static final PartitionData PARTITION = newPartition(7, "music");
49+
static {
50+
Mockito.when(TRACKING.copy()).thenReturn(TRACKING_COPY);
51+
Mockito.when(PARTITION.copy()).thenReturn(PARTITION_COPY);
52+
}
5353

5454
private static final DeletionVectorStruct DELETION_VECTOR =
5555
DeletionVectorStruct.builder()
@@ -72,15 +72,7 @@ class TestTrackedFileStruct {
7272
.minSequenceNumber(5L)
7373
.build();
7474

75-
private static final ContentStats CONTENT_STATS =
76-
BaseContentStats.builder()
77-
.withTableSchema(
78-
new Schema(
79-
Types.NestedField.optional(1, "id", Types.IntegerType.get()),
80-
Types.NestedField.optional(2, "data", Types.FloatType.get())))
81-
.withFieldStats(BaseFieldStats.builder().fieldId(1).build())
82-
.withFieldStats(BaseFieldStats.builder().fieldId(2).build())
83-
.build();
75+
private static final ContentStats CONTENT_STATS = Mockito.mock(ContentStats.class);
8476

8577
@Test
8678
void fieldAccess() {
@@ -224,8 +216,7 @@ void copy() {
224216
TrackedFile copy = file.copy();
225217

226218
assertThat(copy).isInstanceOf(TrackedFileStruct.class);
227-
assertThat(TRACKING_COMPARATOR.compare((StructLike) copy.tracking(), (StructLike) TRACKING))
228-
.isEqualTo(0);
219+
assertThat(copy.tracking()).isEqualTo(TRACKING_COPY);
229220
assertThat(copy.contentType()).isEqualTo(FileContent.DATA);
230221
assertThat(copy.formatVersion()).isEqualTo(FORMAT_VERSION_V4);
231222
assertThat(copy.location()).isEqualTo("s3://bucket/data/00000-0-file.parquet");
@@ -240,12 +231,9 @@ void copy() {
240231
assertThat(copy.keyMetadata()).isEqualTo(ByteBuffer.wrap(new byte[] {1, 2, 3}));
241232
assertThat(copy.splitOffsets()).containsExactly(100L, 200L);
242233
assertThat(copy.equalityIds()).containsExactly(1, 2, 3);
243-
244-
assertThat(PARTITION_COMPARATOR.compare(copy.partition(), PARTITION)).isEqualTo(0);
234+
assertThat(copy.partition()).isSameAs(PARTITION_COPY);
245235

246236
// mutable fields are deep-copied, not shared with the original
247-
assertThat(copy.tracking()).isNotSameAs(file.tracking());
248-
assertThat(copy.partition()).isNotSameAs(file.partition());
249237
assertThat(copy.deletionVector()).isNotSameAs(file.deletionVector());
250238
assertThat(copy.manifestInfo()).isNotSameAs(file.manifestInfo());
251239
assertThat(copy.keyMetadata()).isNotSameAs(file.keyMetadata());
@@ -280,12 +268,12 @@ void structLikeSize() {
280268
void serializationRoundTrip(RoundTripSerializer<TrackedFileStruct> serializer) throws Exception {
281269
TrackedFileStruct file =
282270
new TrackedFileStruct(
283-
TRACKING,
271+
null, // TrackingStruct has its own serialization tests
284272
FileContent.DATA,
285273
FORMAT_VERSION_V4,
286274
"s3://bucket/data/file.parquet",
287275
FileFormat.PARQUET,
288-
PARTITION,
276+
null, // PartitionData has its own serialization tests
289277
100L,
290278
1024L,
291279
7,
@@ -299,15 +287,12 @@ void serializationRoundTrip(RoundTripSerializer<TrackedFileStruct> serializer) t
299287

300288
TrackedFileStruct deserialized = serializer.apply(file);
301289

302-
assertThat(
303-
TRACKING_COMPARATOR.compare(
304-
(StructLike) deserialized.tracking(), (StructLike) TRACKING))
305-
.isEqualTo(0);
290+
assertThat(deserialized.tracking()).isNull();
306291
assertThat(deserialized.contentType()).isEqualTo(FileContent.DATA);
307292
assertThat(deserialized.formatVersion()).isEqualTo(FORMAT_VERSION_V4);
308293
assertThat(deserialized.location()).isEqualTo("s3://bucket/data/file.parquet");
309294
assertThat(deserialized.fileFormat()).isEqualTo(FileFormat.PARQUET);
310-
assertThat(PARTITION_COMPARATOR.compare(deserialized.partition(), PARTITION)).isEqualTo(0);
295+
assertThat(deserialized.partition()).isNull();
311296
assertThat(deserialized.recordCount()).isEqualTo(100L);
312297
assertThat(deserialized.fileSizeInBytes()).isEqualTo(1024L);
313298
assertThat(deserialized.specId()).isEqualTo(7);

0 commit comments

Comments
 (0)