// Path: deltaspike-dbunit/src/main/java/com/github/deltaspikedbunit/annotation/DatabaseOperation.java
// public enum DatabaseOperation {
// 
// 	/**
// 	 * Updates the contents of existing database tables from the dataset.
// 	 */
// 	UPDATE,
// 
// 	/**
// 	 * Inserts new database tables and contents from the dataset.
// 	 */
// 	INSERT,
// 
// 	/**
// 	 * Refresh the contents of existing database tables. Rows from the dataset will insert or replace existing data. Any
// 	 * database rows that are not in the dataset remain unaffected.
// 	 */
// 	REFRESH,
// 
// 	/**
// 	 * Deletes database table rows that match rows from the dataset.
// 	 */
// 	DELETE,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset. Tables in the database but not
// 	 * in the dataset remain unaffected.
// 	 * @see #TRUNCATE_TABLE
// 	 */
// 	DELETE_ALL,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset. Tables in the database but not
// 	 * in the dataset are unaffected. Identical to {@link #DELETE_ALL} except this operation cannot be rolled back and
// 	 * is supported by less database vendors.
// 	 * @see #DELETE_ALL
// 	 */
// 	TRUNCATE_TABLE,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset and subsequently insert new
// 	 * contents. Equivalent to calling {@link #DELETE_ALL} followed by {@link #INSERT}.
// 	 */
// 	CLEAN_INSERT
// 
// }
// 
// Path: deltaspike-dbunit/src/main/java/com/github/deltaspikedbunit/assertion/DatabaseAssertionMode.java
// public enum DatabaseAssertionMode {
// 
// 	/**
// 	 * Default DbUnit data sets assertions (i.e. checks all columns and their order).
// 	 */
// 	DEFAULT(new DefaultDatabaseAssertion()),
// 
// 	/**
// 	 * Allows specifying only specific columns and tables in expected data set. Unspecified tables and columns are
// 	 * ignored.
// 	 * <p>
// 	 * <strong>Notes:</strong>
// 	 * <ul>
// 	 * <li>Expected row order must match order in actual data set.</li>
// 	 * <li>Specified columns must match in all rows, e.g. specifying 'column1' value without 'column2' value in one row
// 	 * and only 'column2' value in another is not allowed - both 'column1' and 'column2' values must be specified in all
// 	 * rows.</li>
// 	 * </ul>
// 	 */
// 	NON_STRICT(new NonStrictDatabaseAssertion()),
// 
// 	/**
// 	 * Allows specifying only specific columns and tables in expected data set and ignoring row orders in expected and
// 	 * actual data set. Unspecified tables and columns are ignored. Row orders in expected and actual data sets are
// 	 * ignored.
// 	 * <p>
// 	 * <strong>Notes:</strong>
// 	 * <ul>
// 	 * <li>Expected row order does not need to match order in actual data set.</li>
// 	 * <li>Specified columns must match in all rows, e.g. specifying 'column1' value without 'column2' value in one row
// 	 * and only 'column2' value in another is not allowed - both 'column1' and 'column2' values must be specified in all
// 	 * rows.</li>
// 	 * </ul>
// 	 */
// 	NON_STRICT_UNORDERED(new NonStrictUnorderedDatabaseAssertion());
// 
// 
// 	private DatabaseAssertion databaseAssertion;
// 
// 	DatabaseAssertionMode(DatabaseAssertion databaseAssertion) {
// 		this.databaseAssertion = databaseAssertion;
// 	}
// 
// 
// 	public DatabaseAssertion getDatabaseAssertion() {
// 		return this.databaseAssertion;
// 	}
// 
// }
// 
// Path: deltaspike-dbunit-sample/src/main/java/com/github/deltaspikedbunit/sample/inventory/repository/InventoryCategoryRepository.java
// @Repository
// public abstract class InventoryCategoryRepository extends AbstractEntityRepository<InventoryCategory, Integer> {
// 
//     @Query(value = "select ic from InventoryCategory ic where ic.categoryName = :categoryName", 
// 	   singleResult = SingleResultType.OPTIONAL)
//     public abstract InventoryCategory findByName(@QueryParam("categoryName") String categoryName);
// 
// }


import static org.hamcrest.Matchers.contains;
import com.github.deltaspikedbunit.annotation.DatabaseOperation;
import com.github.deltaspikedbunit.annotation.DatabaseSetup;
import com.github.deltaspikedbunit.annotation.ExpectedDatabase;
import com.github.deltaspikedbunit.assertion.DatabaseAssertionMode;
import com.github.deltaspikedbunit.deltaspike.DatabaseTest;
import com.github.deltaspikedbunit.sample.inventory.repository.InventoryCategoryRepository;
import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
/*
 * Copyright 2002-2015 the original author or authors
 *
 * 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 com.github.deltaspikedbunit.expected;





@RunWith(CdiTestRunner.class)
@DatabaseTest
@DatabaseSetup(value = "../setup-db.xml", type = DatabaseOperation.INSERT)
// Path: deltaspike-dbunit/src/main/java/com/github/deltaspikedbunit/annotation/DatabaseOperation.java
// public enum DatabaseOperation {
// 
// 	/**
// 	 * Updates the contents of existing database tables from the dataset.
// 	 */
// 	UPDATE,
// 
// 	/**
// 	 * Inserts new database tables and contents from the dataset.
// 	 */
// 	INSERT,
// 
// 	/**
// 	 * Refresh the contents of existing database tables. Rows from the dataset will insert or replace existing data. Any
// 	 * database rows that are not in the dataset remain unaffected.
// 	 */
// 	REFRESH,
// 
// 	/**
// 	 * Deletes database table rows that match rows from the dataset.
// 	 */
// 	DELETE,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset. Tables in the database but not
// 	 * in the dataset remain unaffected.
// 	 * @see #TRUNCATE_TABLE
// 	 */
// 	DELETE_ALL,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset. Tables in the database but not
// 	 * in the dataset are unaffected. Identical to {@link #DELETE_ALL} except this operation cannot be rolled back and
// 	 * is supported by less database vendors.
// 	 * @see #DELETE_ALL
// 	 */
// 	TRUNCATE_TABLE,
// 
// 	/**
// 	 * Deletes all rows from a database table when the table is specified in the dataset and subsequently insert new
// 	 * contents. Equivalent to calling {@link #DELETE_ALL} followed by {@link #INSERT}.
// 	 */
// 	CLEAN_INSERT
// 
// }
// 
// Path: deltaspike-dbunit/src/main/java/com/github/deltaspikedbunit/assertion/DatabaseAssertionMode.java
// public enum DatabaseAssertionMode {
// 
// 	/**
// 	 * Default DbUnit data sets assertions (i.e. checks all columns and their order).
// 	 */
// 	DEFAULT(new DefaultDatabaseAssertion()),
// 
// 	/**
// 	 * Allows specifying only specific columns and tables in expected data set. Unspecified tables and columns are
// 	 * ignored.
// 	 * <p>
// 	 * <strong>Notes:</strong>
// 	 * <ul>
// 	 * <li>Expected row order must match order in actual data set.</li>
// 	 * <li>Specified columns must match in all rows, e.g. specifying 'column1' value without 'column2' value in one row
// 	 * and only 'column2' value in another is not allowed - both 'column1' and 'column2' values must be specified in all
// 	 * rows.</li>
// 	 * </ul>
// 	 */
// 	NON_STRICT(new NonStrictDatabaseAssertion()),
// 
// 	/**
// 	 * Allows specifying only specific columns and tables in expected data set and ignoring row orders in expected and
// 	 * actual data set. Unspecified tables and columns are ignored. Row orders in expected and actual data sets are
// 	 * ignored.
// 	 * <p>
// 	 * <strong>Notes:</strong>
// 	 * <ul>
// 	 * <li>Expected row order does not need to match order in actual data set.</li>
// 	 * <li>Specified columns must match in all rows, e.g. specifying 'column1' value without 'column2' value in one row
// 	 * and only 'column2' value in another is not allowed - both 'column1' and 'column2' values must be specified in all
// 	 * rows.</li>
// 	 * </ul>
// 	 */
// 	NON_STRICT_UNORDERED(new NonStrictUnorderedDatabaseAssertion());
// 
// 
// 	private DatabaseAssertion databaseAssertion;
// 
// 	DatabaseAssertionMode(DatabaseAssertion databaseAssertion) {
// 		this.databaseAssertion = databaseAssertion;
// 	}
// 
// 
// 	public DatabaseAssertion getDatabaseAssertion() {
// 		return this.databaseAssertion;
// 	}
// 
// }
// 
// Path: deltaspike-dbunit-sample/src/main/java/com/github/deltaspikedbunit/sample/inventory/repository/InventoryCategoryRepository.java
// @Repository
// public abstract class InventoryCategoryRepository extends AbstractEntityRepository<InventoryCategory, Integer> {
// 
//     @Query(value = "select ic from InventoryCategory ic where ic.categoryName = :categoryName", 
// 	   singleResult = SingleResultType.OPTIONAL)
//     public abstract InventoryCategory findByName(@QueryParam("categoryName") String categoryName);
// 
// }


// Path: deltaspike-dbunit/src/test/java/com/github/deltaspikedbunit/expected/ExpectedNonStrictUnorderedOnMethodTest.java
import static org.hamcrest.Matchers.contains;
import com.github.deltaspikedbunit.annotation.DatabaseOperation;
import com.github.deltaspikedbunit.annotation.DatabaseSetup;
import com.github.deltaspikedbunit.annotation.ExpectedDatabase;
import com.github.deltaspikedbunit.assertion.DatabaseAssertionMode;
import com.github.deltaspikedbunit.deltaspike.DatabaseTest;
import com.github.deltaspikedbunit.sample.inventory.repository.InventoryCategoryRepository;
import org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;

/*
 * Copyright 2002-2015 the original author or authors
 *
 * 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 com.github.deltaspikedbunit.expected;





@RunWith(CdiTestRunner.class)
@DatabaseTest
@DatabaseSetup(value = "../setup-db.xml", type = DatabaseOperation.INSERT)
public class ExpectedNonStrictUnorderedOnMethodTest {