package example.delivery;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import static org.assertj.core.api.Assertions.*;
@SpringBootTest(classes=DeliveryApplication.class,webEnvironment=SpringBootTest.WebEnvironment.NONE)
abstract class SharedCacheTest {
    static final AtomicReference<ApplicationContext> first=new AtomicReference<>();
    @Autowired ApplicationContext context;
    void sameContext() {
        first.compareAndSet(null,context);
        assertThat(context).isSameAs(first.get());
    }
}
class CacheATests extends SharedCacheTest {
    @Test void firstClassReusesContext() { sameContext(); }
}
class CacheBTests extends SharedCacheTest {
    @Test void secondClassReusesContext() { sameContext(); }
}
