Package ch.powerunit.impl

Source Code of ch.powerunit.impl.AssertThatExceptionImpl

/**
* Powerunit - A JDK1.8 test framework
* Copyright (C) 2014 Mathieu Boretti.
*
* This file is part of Powerunit
*
* Powerunit is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Powerunit is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Powerunit. If not, see <http://www.gnu.org/licenses/>.
*/
package ch.powerunit.impl;

import org.hamcrest.Matcher;

import ch.powerunit.AssertThatException;
import ch.powerunit.Statement;
import ch.powerunit.TestSuite;
import ch.powerunit.exception.AssumptionError;

public class AssertThatExceptionImpl<P, T extends Throwable> implements
    AssertThatException<T>, TestSuite {

  private final boolean assertion;

  public AssertThatExceptionImpl(boolean assertion, Statement<P, T> runnable,
      P param, String msg) {
    this.runnable = runnable;
    this.msg = msg;
    this.param = param;
    this.assertion = assertion;
  }

  private final Statement<P, T> runnable;

  private final String msg;

  private final P param;

  @SuppressWarnings({ "unchecked", "rawtypes" })
  @Override
  public void throwException(Matcher<T> matching) {
    try {
      runnable.run(param);
    } catch (Throwable t) {// NOSONAR
      // As we really want all error
      if (assertion) {
        assertThat(msg, t).is((Matcher) matching);
      } else {
        assumeThat(msg, t).is((Matcher) matching);
      }
      return;
    }
    if (assertion) {
      throw new AssertionError((msg == null ? "" : msg + "\n")
          + "An exception was expected, but none was thrown");
    } else {
      throw new AssumptionError((msg == null ? "" : msg + "\n")
          + "An exception was expected, but none was thrown");
    }
  }
}
TOP

Related Classes of ch.powerunit.impl.AssertThatExceptionImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.