/******************************************************************************* * * Pentaho Platform Core * * Copyright (C) 2002-2015 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************/ package org.pentaho.test; import org.junit.Assume; import org.junit.Test; import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanEquals; import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanHashCode; import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanToString; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.MatcherAssert.assertThat; public class BeanTester { private Class<?> clazz; private boolean testHasValidBeanConstructor; private boolean testHasValidGettersAndSetters; private boolean testHasValidBeanHashCode; private boolean testHasValidBeanEquals; private boolean testHasValidBeanToString; public BeanTester( Class<?> clazz ) { this( clazz, true, true, true, true, true ); } public BeanTester( Class<?> clazz, boolean testHasValidBeanConstructor, boolean testHasValidGettersAndSetters, boolean testHasValidBeanHashCode, boolean testHasValidBeanEquals, boolean testHasValidBeanToString ) { this.clazz = clazz; this.testHasValidBeanConstructor = testHasValidBeanConstructor; this.testHasValidGettersAndSetters = testHasValidGettersAndSetters; this.testHasValidBeanHashCode = testHasValidBeanHashCode; this.testHasValidBeanEquals = testHasValidBeanEquals; this.testHasValidBeanToString = testHasValidBeanToString; } @Test public void testHasValidBeanConstructor() { Assume.assumeTrue( "Skipping hasValidBeanConstructor", testHasValidBeanConstructor ); assertThat( clazz, hasValidBeanConstructor() ); } @Test public void testHasValidGettersAndSetters() { Assume.assumeTrue( "Skipping hasValidGettersAndSetters", testHasValidGettersAndSetters ); assertThat( clazz, hasValidGettersAndSetters() ); } @Test public void testHasValidBeanHashCode() { Assume.assumeTrue( "Skipping testHasValidBeanHashCode", testHasValidBeanHashCode ); assertThat( clazz, hasValidBeanHashCode() ); } @Test public void testHasValidBeanEquals() { Assume.assumeTrue( "Skipping hasValidBeanEquals", testHasValidBeanEquals ); assertThat( clazz, hasValidBeanEquals() ); } @Test public void testHasValidBeanToString() { Assume.assumeTrue( "Skipping hasValidBeanToString", testHasValidBeanToString ); assertThat( clazz, hasValidBeanToString() ); } protected Class<?> getClazz() { return clazz; } }