@Override public void compare(@Observes CompareData compareDataEvent) { try { IDataSet currentDataSet = databaseConnection.get().createDataSet(); final String[] excludeTablesFromComparisonWhenEmptyExpected = dbunitConfigurationInstance.get().getExcludeTablesFromComparisonWhenEmptyExpected(); if (excludeTablesFromComparisonWhenEmptyExpected.length != 0) { currentDataSet = new FilteredDataSet(new ExcludeTableFilter(excludeTablesFromComparisonWhenEmptyExpected), currentDataSet); } final IDataSet expectedDataSet = DataSetUtils.mergeDataSets(dataSetRegister.get().getExpected()); new DataSetComparator(compareDataEvent.getSortByColumns(), compareDataEvent.getColumnsToExclude()).compare(currentDataSet, expectedDataSet, assertionErrorCollector.get()); } catch (Exception e) { throw new DBUnitDataSetHandlingException("Failed while comparing database state with provided data sets.", e); } }
public void verifyDatabase(@Observes(precedence = 30) AfterPersistenceTest afterPersistenceTest) { PersistenceExtensionFeatureResolver persistenceExtensionFeatureResolver = persistenceExtensionFeatureResolverInstance.get(); if (persistenceExtensionFeatureResolver.shouldVerifyDataAfterTest()) { final MetadataExtractor metadataExtractor = metadataExtractorInstance.get(); final ExpectedDataSetProvider dataSetProvider = new ExpectedDataSetProvider(metadataExtractor, configurationInstance.get()); final Method testMethod = afterPersistenceTest.getTestMethod(); final ShouldMatchDataSet dataSetsToVerify = metadataExtractor.shouldMatchDataSet() .fetchFrom(testMethod); compareDataEvent.fire(new CompareData(dataSetProvider.getDescriptorsDefinedFor(testMethod), dataSetsToVerify.orderBy(), dataSetsToVerify.excludeColumns())); } }