/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* 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.drools.workbench.screens.guided.dtable.client.widget.table.popovers.definitions;
import java.util.concurrent.atomic.AtomicBoolean;
import org.drools.workbench.models.guided.dtable.shared.model.BaseColumn;
import org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52;
import org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52;
import org.drools.workbench.models.guided.dtable.shared.model.RowNumberCol52;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import static org.junit.Assert.*;
@RunWith(MockitoJUnitRunner.class)
public class LimitedEntryConditionCol52DefinitionBuilderTest extends BaseColumnDefinitionBuilderTest {
@Override
protected ColumnDefinitionBuilder getBuilder() {
return new LimitedEntryConditionCol52DefinitionBuilder( serviceCaller );
}
@Test
public void checkColumnType() {
assertEquals( LimitedEntryConditionCol52.class,
builder.getSupportedColumnType() );
}
@Test
public void unknownColumnTypeDoesNotTriggerBuilder() {
final BaseColumn column = new RowNumberCol52();
builder.generateDefinition( dtPresenter,
column,
( String definition ) -> {
fail( "RowNumberCol52 should not be handled by ConditionCol52DefinitionBuilder" );
} );
}
@Test
public void conditionIsNotPartOfAPattern() {
final BaseColumn column = new LimitedEntryConditionCol52();
builder.generateDefinition( dtPresenter,
column,
( String definition ) -> {
fail( "ConditionCol52 was not part of a Pattern52 and hence should not be handled by ConditionCol52DefinitionBuilder" );
} );
}
@Test
public void conditionIsPartOfAPattern() {
final AtomicBoolean calledBack = new AtomicBoolean( false );
setupLimitedEntryPatternAndCondition();
builder.generateDefinition( dtPresenter,
model.getExpandedColumns().get( 2 ),
( String definition ) -> {
calledBack.set( true );
assertEquals( "$p : Person( name == \"Michael\" )",
definition );
} );
assertTrue( calledBack.get() );
}
}