| /* |
| * 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.migrationsupport.rules; |
| |
| import static org.junit.jupiter.api.Assertions.assertEquals; |
| import static org.junit.jupiter.api.Assertions.assertNotNull; |
| import static org.junit.jupiter.api.Assertions.assertSame; |
| import static org.junit.jupiter.api.Assertions.assertTrue; |
| import static org.junit.jupiter.migrationsupport.rules.FailAfterAllHelper.fail; |
| |
| import org.junit.Rule; |
| import org.junit.jupiter.api.AfterAll; |
| import org.junit.jupiter.api.Test; |
| import org.junit.rules.ExternalResource; |
| import org.junit.rules.Verifier; |
| |
| @EnableRuleMigrationSupport |
| public class EnableRuleMigrationSupportWithBothRuleTypesTests { |
| |
| private static boolean afterOfRule1WasExecuted = false; |
| |
| private static boolean beforeOfRule2WasExecuted = false; |
| private static boolean afterOfRule2WasExecuted = false; |
| |
| private static int numberOfRule1InstancesCreated = 0; |
| private static int numberOfRule2InstancesCreated = 0; |
| |
| @Rule |
| public Verifier verifier1 = new Verifier() { |
| { |
| numberOfRule1InstancesCreated++; |
| } |
| |
| @Override |
| protected void verify() { |
| afterOfRule1WasExecuted = true; |
| } |
| }; |
| |
| @Rule |
| public ExternalResource getResource2() { |
| return new ExternalResource() { |
| { |
| numberOfRule2InstancesCreated++; |
| } |
| |
| private Object instance; |
| |
| @Override |
| protected void before() { |
| instance = this; |
| beforeOfRule2WasExecuted = true; |
| } |
| |
| @Override |
| protected void after() { |
| assertNotNull(instance); |
| assertSame(instance, this); |
| afterOfRule2WasExecuted = true; |
| } |
| }; |
| } |
| |
| @Test |
| void beforeMethodOfBothRule2WasExecuted() { |
| assertTrue(beforeOfRule2WasExecuted); |
| } |
| |
| @AfterAll |
| static void afterMethodsOfBothRulesWereExecuted() { |
| assertEquals(1, numberOfRule1InstancesCreated); |
| assertEquals(1, numberOfRule2InstancesCreated); |
| if (!afterOfRule1WasExecuted) |
| fail(); |
| if (!afterOfRule2WasExecuted) |
| fail(); |
| } |
| |
| } |