Add test coverage for isInitialized in MemoizingInterruptibleSupplier. RELNOTES: None. PiperOrigin-RevId: 248746530
diff --git a/src/test/java/com/google/devtools/build/lib/supplier/MemoizingInterruptibleSupplierTest.java b/src/test/java/com/google/devtools/build/lib/supplier/MemoizingInterruptibleSupplierTest.java index 93967fd..5408e72 100644 --- a/src/test/java/com/google/devtools/build/lib/supplier/MemoizingInterruptibleSupplierTest.java +++ b/src/test/java/com/google/devtools/build/lib/supplier/MemoizingInterruptibleSupplierTest.java
@@ -37,7 +37,7 @@ } @Test - public void returnsCorrectResult() throws Exception { + public void getReturnsCorrectResult() throws Exception { MemoizingInterruptibleSupplier<String> supplier = MemoizingInterruptibleSupplier.of(callCounter::call); returnVal = "abc"; @@ -48,6 +48,18 @@ } @Test + public void subsequentCallToGetReturnsCorrectResult() throws Exception { + MemoizingInterruptibleSupplier<String> supplier = + MemoizingInterruptibleSupplier.of(callCounter::call); + returnVal = "abc"; + + supplier.get(); + String result = supplier.get(); + + assertThat(result).isEqualTo("abc"); + } + + @Test public void onlyCallsDelegateOnce() throws Exception { MemoizingInterruptibleSupplier<String> supplier = MemoizingInterruptibleSupplier.of(callCounter::call); @@ -71,6 +83,39 @@ } @Test + public void notInitializedBeforeCallingGet() { + MemoizingInterruptibleSupplier<String> supplier = + MemoizingInterruptibleSupplier.of(callCounter::call); + + boolean initialized = supplier.isInitialized(); + + assertThat(initialized).isFalse(); + } + + @Test + public void isInitializedAfterCallingGet() throws Exception { + MemoizingInterruptibleSupplier<String> supplier = + MemoizingInterruptibleSupplier.of(callCounter::call); + + supplier.get(); + boolean initialized = supplier.isInitialized(); + + assertThat(initialized).isTrue(); + } + + @Test + public void isStillInitializedAfterSubsequentCallToGet() throws Exception { + MemoizingInterruptibleSupplier<String> supplier = + MemoizingInterruptibleSupplier.of(callCounter::call); + + supplier.get(); + supplier.get(); + boolean initialized = supplier.isInitialized(); + + assertThat(initialized).isTrue(); + } + + @Test public void of_returnsSameInstanceIfAlreadyMemoizing() { InterruptibleSupplier<String> supplier = MemoizingInterruptibleSupplier.of(callCounter::call); assertThat(MemoizingInterruptibleSupplier.of(supplier)).isSameInstanceAs(supplier);