// Copyright 2017 JanusGraph 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.janusgraph.graphdb.tinkerpop;
import static org.easymock.EasyMock.expect;
import org.easymock.EasyMockSupport;
import org.junit.Test;
import org.janusgraph.core.attribute.Geoshape;
import org.janusgraph.core.Cardinality;
import org.janusgraph.core.PropertyKey;
import org.janusgraph.core.schema.PropertyKeyMaker;
import org.janusgraph.core.schema.DefaultSchemaMaker;
import java.util.Date;
import java.util.UUID;
public class JanusGraphDefaultSchemaMakerTest extends EasyMockSupport {
@Test
public void testMakePropertyKey() {
PropertyKeyMaker pkm = mockPropertyKeyMaker();
DefaultSchemaMaker schemaMaker = JanusGraphDefaultSchemaMaker.INSTANCE;
byte b = 100;
short s = 10000;
schemaMaker.makePropertyKey(pkm, "Foo");
schemaMaker.makePropertyKey(pkm, 'f');
schemaMaker.makePropertyKey(pkm, true);
schemaMaker.makePropertyKey(pkm, b);
schemaMaker.makePropertyKey(pkm, s);
schemaMaker.makePropertyKey(pkm, 100);
schemaMaker.makePropertyKey(pkm, 100L);
schemaMaker.makePropertyKey(pkm, 100.0f);
schemaMaker.makePropertyKey(pkm, 1.23e2);
schemaMaker.makePropertyKey(pkm, new Date());
schemaMaker.makePropertyKey(pkm, Geoshape.point(42.3601f, 71.0589f));
schemaMaker.makePropertyKey(pkm, UUID.randomUUID());
schemaMaker.makePropertyKey(pkm, new Object());
verifyAll();
}
private PropertyKeyMaker mockPropertyKeyMaker() {
PropertyKeyMaker propertyKeyMaker = createMock(PropertyKeyMaker.class);
PropertyKey pk = createMock(PropertyKey.class);
expect(propertyKeyMaker.make()).andReturn(pk).anyTimes();
expect(propertyKeyMaker.getName()).andReturn("Quux").anyTimes();
expect(propertyKeyMaker.cardinality(Cardinality.SINGLE)).andReturn(propertyKeyMaker).anyTimes();
expect(propertyKeyMaker.dataType(String.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Character.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Boolean.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Byte.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Short.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Integer.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Long.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Float.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Double.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Date.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Geoshape.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(UUID.class)).andReturn(propertyKeyMaker);
expect(propertyKeyMaker.dataType(Object.class)).andReturn(propertyKeyMaker);
replayAll();
return propertyKeyMaker;
}
}