/*
* Copyright 2004-2009 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 org.compass.core.test.reference;
import org.compass.core.config.CompassConfiguration;
import static org.compass.core.mapping.osem.builder.OSEM.*;
/**
* @author kimchy
*/
public class ReferenceBuilderTests extends ReferenceTests {
@Override
protected String[] getMappings() {
return new String[0];
}
@Override
protected void addExtraConf(CompassConfiguration conf) {
super.addExtraConf(conf);
conf.addMapping(
searchable(A.class).alias("a")
.add(id("id"))
.add(property("value").add(metadata("value")))
.add(reference("b"))
);
conf.addMapping(
searchable(B.class).alias("b")
.add(id("id"))
.add(property("value").add(metadata("value")))
);
conf.addMapping(
searchable(X.class).alias("x")
.add(id("id"))
.add(property("value").add(metadata("value")))
.add(reference("y").refAlias("y"))
);
conf.addMapping(
searchable(Y.class).alias("y")
.add(id("id"))
.add(property("value").add(metadata("value")))
);
conf.addMapping(
searchable(Cyclic1.class).alias("cyclic1")
.add(id("id"))
.add(property("value").add(metadata("value")))
.add(reference("cyclic2").refAlias("cyclic2"))
);
conf.addMapping(
searchable(Cyclic2.class).alias("cyclic2")
.add(id("id"))
.add(property("value").add(metadata("value")))
.add(reference("cyclic1").refAlias("cyclic1"))
);
conf.addMapping(
searchable(X.class).alias("x1")
.add(id("id"))
.add(property("value").add(metadata("value")))
.add(reference("y").refAlias("y1").refComponentAlias("y2"))
);
conf.addMapping(
searchable(Y.class).alias("y1")
.add(id("id"))
.add(property("value").add(metadata("value")))
);
conf.addMapping(
searchable(Y.class).alias("y2").root(false)
.add(property("value").add(metadata("value1")))
);
conf.addMapping(
searchable(ManyToMany1.class).alias("many1")
.add(id("id").accessor("field"))
.add(property("value").accessor("field").add(metadata("value")))
.add(reference("many2").accessor("field").refAlias("many2"))
);
conf.addMapping(
searchable(ManyToMany2.class).alias("many2")
.add(id("id").accessor("field"))
.add(property("value").accessor("field").add(metadata("value")))
.add(reference("many1").accessor("field").refAlias("many1"))
);
}
}