Skip to content

Commit

Permalink
Fixed Selenium tests: Serializable Specification & Predicate in confi…
Browse files Browse the repository at this point in the history
…gurations.
  • Loading branch information
max-dev committed Jan 7, 2013
1 parent 32b3b70 commit d19aed8
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 29 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.lightadmin.core.config.domain.scope;

import com.google.common.base.Predicate;

import java.io.Serializable;

public interface DomainTypePredicate<T> extends Predicate<T>, Serializable {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.lightadmin.core.config.domain.scope;

import javax.annotation.Nullable;

public class DomainTypePredicates {

private DomainTypePredicates() {
}

public static <T> DomainTypePredicate<T> alwaysTrue() {
return new DomainTypePredicate<T>() {
@Override
public boolean apply( @Nullable final Object input ) {
return true;
}
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.lightadmin.core.config.domain.scope;

import org.springframework.data.jpa.domain.Specification;

import java.io.Serializable;

public interface DomainTypeSpecification<T> extends Specification<T>, Serializable {

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package org.lightadmin.core.config.domain.scope;

import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import org.springframework.data.jpa.domain.Specification;

public final class ScopeMetadataUtils {

private ScopeMetadataUtils() {
Expand All @@ -26,11 +22,11 @@ public static ScopeMetadata all() {
return new DefaultScopeMetadata().name( "All" );
}

public static <T> ScopeMetadata filter( Predicate<T> filter ) {
public static <T> ScopeMetadata filter( DomainTypePredicate<T> filter ) {
return new PredicateScopeMetadata<T>( filter ).name( filter.getClass().getSimpleName() );
}

public static <T> ScopeMetadata specification( Specification<T> specification ) {
public static <T> ScopeMetadata specification( DomainTypeSpecification<T> specification ) {
return new SpecificationScopeMetadata<T>( specification ).name( specification.getClass().getSimpleName() );
}

Expand All @@ -44,9 +40,9 @@ public static boolean isPredicateScope( final ScopeMetadata scope ) {

public static class SpecificationScopeMetadata<T> extends AbstractScope {

private transient final Specification<T> specification;
private final DomainTypeSpecification<T> specification;

private SpecificationScopeMetadata( final Specification<T> specification ) {
private SpecificationScopeMetadata( final DomainTypeSpecification<T> specification ) {
this.specification = specification;
}

Expand All @@ -55,16 +51,16 @@ private SpecificationScopeMetadata( final SpecificationScopeMetadata<T> scope )
this.specification = scope.specification();
}

public Specification<T> specification() {
public DomainTypeSpecification<T> specification() {
return specification;
}
}

public static class PredicateScopeMetadata<T> extends AbstractScope {

private transient Predicate<T> predicate = Predicates.alwaysTrue();
private DomainTypePredicate<T> predicate = DomainTypePredicates.alwaysTrue();

private PredicateScopeMetadata( final Predicate<T> predicate ) {
private PredicateScopeMetadata( final DomainTypePredicate<T> predicate ) {
this.predicate = predicate;
}

Expand All @@ -73,7 +69,7 @@ public PredicateScopeMetadata( PredicateScopeMetadata<T> scope ) {
this.predicate = scope.predicate();
}

public Predicate<T> predicate() {
public DomainTypePredicate<T> predicate() {
return predicate;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void defaultConfigurationUnitCreatedForDomainType() {
public void allScopesDefined() throws Exception {
ScopesConfigurationUnit configurationUnit = defaultScopesBuilder()
.scope( "Scope #1", all() )
.scope( "Scope #2", filter( Predicates.alwaysTrue() ) )
.scope( "Scope #2", filter( DomainTypePredicates.alwaysTrue() ) )
.build();

assertScopesDefined( configurationUnit, "Scope #1", "Scope #2" );
Expand All @@ -34,7 +34,7 @@ public void allScopesDefined() throws Exception {
public void defaultScopeSetByDefault() throws Exception {
ScopesConfigurationUnit configurationUnit = defaultScopesBuilder()
.scope( "Scope #1", all() )
.scope( "Scope #2", filter( Predicates.alwaysTrue() ) )
.scope( "Scope #2", filter( DomainTypePredicates.alwaysTrue() ) )
.build();

assertTrue( configurationUnit.getScope( "Scope #1" ).isDefaultScope() );
Expand All @@ -44,7 +44,7 @@ public void defaultScopeSetByDefault() throws Exception {
public void customSetDefaultScope() throws Exception {
ScopesConfigurationUnit configurationUnit = defaultScopesBuilder()
.scope( "Scope #1", all() )
.scope( "Scope #2", filter( Predicates.alwaysTrue() ).defaultScope( true ) )
.scope( "Scope #2", filter( DomainTypePredicates.alwaysTrue() ).defaultScope( true ) )
.build();

assertTrue( configurationUnit.getScope( "Scope #2" ).isDefaultScope() );
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.lightadmin.demo.config;

import com.google.common.base.Predicates;
import org.lightadmin.core.annotation.Administration;
import org.lightadmin.core.config.domain.common.FieldSetConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.common.PersistentFieldSetConfigurationUnitBuilder;
Expand All @@ -10,11 +9,12 @@
import org.lightadmin.core.config.domain.context.ScreenContextConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.filter.FiltersConfigurationUnit;
import org.lightadmin.core.config.domain.filter.FiltersConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.scope.DomainTypePredicates;
import org.lightadmin.core.config.domain.scope.DomainTypeSpecification;
import org.lightadmin.core.config.domain.scope.ScopesConfigurationUnit;
import org.lightadmin.core.config.domain.scope.ScopesConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.unit.FieldSetConfigurationUnit;
import org.lightadmin.demo.model.Customer;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
Expand Down Expand Up @@ -68,7 +68,7 @@ public static FieldSetConfigurationUnit formView( final PersistentFieldSetConfig
public static ScopesConfigurationUnit scopes( final ScopesConfigurationUnitBuilder scopeBuilder ) {
return scopeBuilder
.scope( "All", all() ).defaultScope()
.scope( "Buyers", filter( Predicates.alwaysTrue() ) )
.scope( "Buyers", filter( DomainTypePredicates.alwaysTrue() ) )
.scope( "Sellers", specification( customerNameEqDave() ) ).build();
}

Expand All @@ -79,8 +79,8 @@ public static FiltersConfigurationUnit filters( final FiltersConfigurationUnitBu
.filter( "Email Address", "emailAddress" ).build();
}

public static Specification<Customer> customerNameEqDave() {
return new Specification<Customer>() {
public static DomainTypeSpecification<Customer> customerNameEqDave() {
return new DomainTypeSpecification<Customer>() {
@Override
public Predicate toPredicate( final Root<Customer> root, final CriteriaQuery<?> query, final CriteriaBuilder cb ) {
return cb.equal( root.get( "firstname" ), "Dave" );
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package org.lightadmin.test.scope;

import org.lightadmin.core.config.domain.scope.DomainTypeSpecification;
import org.lightadmin.test.model.TestCustomer;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

public class DummySpecification implements Specification<TestCustomer> {
public class DummySpecification implements DomainTypeSpecification<TestCustomer> {

@Override
public Predicate toPredicate( Root<TestCustomer> testCustomerRoot, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder ) {
return criteriaBuilder.equal( testCustomerRoot.get( "firstname" ), "Dave" );
}
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
package org.lightadmin.config;

import com.google.common.base.Predicates;
import org.lightadmin.core.annotation.Administration;
import org.lightadmin.core.config.domain.common.FieldSetConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.context.ScreenContextConfigurationUnit;
import org.lightadmin.core.config.domain.context.ScreenContextConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.filter.FiltersConfigurationUnit;
import org.lightadmin.core.config.domain.filter.FiltersConfigurationUnitBuilder;
import org.lightadmin.core.config.domain.scope.DomainTypePredicates;
import org.lightadmin.core.config.domain.scope.ScopesConfigurationUnit;
import org.lightadmin.core.config.domain.scope.ScopesConfigurationUnitBuilder;

import org.lightadmin.core.config.domain.unit.FieldSetConfigurationUnit;
import org.lightadmin.test.model.TestCustomer;
import org.lightadmin.test.scope.DummySpecification;

import static org.lightadmin.core.config.domain.scope.ScopeMetadataUtils.all;
import static org.lightadmin.core.config.domain.scope.ScopeMetadataUtils.filter;
import static org.lightadmin.core.config.domain.scope.ScopeMetadataUtils.specification;
import static org.lightadmin.core.config.domain.scope.ScopeMetadataUtils.*;

@SuppressWarnings( "unused" )
@Administration( TestCustomer.class )
Expand All @@ -38,7 +35,7 @@ public static FieldSetConfigurationUnit listView( final FieldSetConfigurationUni
public static ScopesConfigurationUnit scopes( final ScopesConfigurationUnitBuilder scopeBuilder ) {
return scopeBuilder
.scope( "All", all() ).defaultScope()
.scope( "Buyers", filter( Predicates.alwaysTrue() ) )
.scope( "Buyers", filter( DomainTypePredicates.alwaysTrue() ) )
.scope( "Sellers", specification( new DummySpecification() ) ).build();
}

Expand Down

0 comments on commit d19aed8

Please sign in to comment.