blob: dc0f5af28a60b5e02083cf0729d6881b7dbd4585 [file] [log] [blame] [edit]
/*
* Copyright 2015-2022 the original author or authors.
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v2.0 which
* accompanies this distribution and is available at
*
* https://www.eclipse.org/legal/epl-v20.html
*/
package org.junit.jupiter.extensions;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;
import static org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS;
import java.util.stream.Stream;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestFactory;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.parallel.ResourceLock;
/**
* Unit tests for {@link org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource}
* stored values.
*
* @since 1.1
*/
class HeavyweightTests {
@AfterAll
static void afterAll() {
Heavyweight.ResourceValue.creations.set(0);
}
@Nested
@TestInstance(PER_CLASS)
@ExtendWith(Heavyweight.class)
@ResourceLock(Heavyweight.Resource.ID)
class Alpha {
private int mark;
@BeforeAll
void setMark(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 0);
mark = resource.usages();
}
@TestFactory
Stream<DynamicTest> alpha1(Heavyweight.Resource resource) {
return Stream.of(dynamicTest("foo", () -> assertTrue(resource.usages() > 1)));
}
@Test
void alpha2(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 1);
}
@Test
void alpha3(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 1);
}
@AfterAll
void checkMark(Heavyweight.Resource resource) {
assertEquals(mark, resource.usages() - 4);
}
}
@Nested
@TestInstance(PER_CLASS)
@ExtendWith(Heavyweight.class)
@ResourceLock(Heavyweight.Resource.ID)
class Beta {
private int mark;
@BeforeAll
void beforeAll(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 0);
mark = resource.usages();
}
@BeforeEach
void beforeEach(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 1);
}
@Test
void beta(Heavyweight.Resource resource) {
assertTrue(resource.usages() > 2);
}
@AfterAll
void afterAll(Heavyweight.Resource resource) {
assertEquals(mark, resource.usages() - 3);
}
}
}