001/*
002 * Licensed to DuraSpace under one or more contributor license agreements.
003 * See the NOTICE file distributed with this work for additional information
004 * regarding copyright ownership.
005 *
006 * DuraSpace licenses this file to you under the Apache License,
007 * Version 2.0 (the "License"); you may not use this file except in
008 * compliance with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.fcrepo.integration.http.api;
019
020import org.fcrepo.http.commons.test.util.ContainerWrapper;
021import org.fcrepo.persistence.ocfl.impl.ReindexService;
022import org.springframework.test.context.TestContext;
023import org.springframework.test.context.support.AbstractTestExecutionListener;
024
025/**
026 * A base class for hosting methods shared by other TestExecutionListeners.
027 *
028 * @author pwinckles
029 */
030public class BaseTestExecutionListener extends AbstractTestExecutionListener {
031
032    protected void cleanDb(final TestContext testContext) {
033        final ReindexService reindexService = getBean(testContext, ReindexService.class);
034        reindexService.reset();
035    }
036
037    protected <T> T getBean(final TestContext testContext, final String name) {
038        final var containerWrapper = testContext.getApplicationContext()
039                .getBean(ContainerWrapper.class);
040        return (T) containerWrapper.getSpringAppContext().getBean(name);
041    }
042
043    protected <T> T getBean(final TestContext testContext, final Class<T> clazz) {
044        final var containerWrapper = testContext.getApplicationContext()
045                .getBean(ContainerWrapper.class);
046        return containerWrapper.getSpringAppContext().getBean(clazz);
047    }
048
049
050}