package org.osmtools.ra.segment;
import static org.junit.Assert.*;
import org.junit.Test;
import org.osmtools.ra.TestBase;
import org.osmtools.ra.TestUtils;
import org.osmtools.ra.data.Member;
import org.springframework.beans.factory.annotation.Autowired;
public class SegmentFactoryTest extends TestBase {
@Autowired
private SegmentFactory segmentFactory;
@Test
public void testCreateMember() throws Exception {
assertEqualClass(FlexibleWay.class, segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), ""))
.getClass());
assertEqualClass(FlexibleWay.class, segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), "inner"))
.getClass());
assertEqualClass(FlexibleWay.class, segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), "outer"))
.getClass());
assertEqualClass(FixedWay.class, segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), "forward"))
.getClass());
assertEqualClass(FixedWay.class, segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), "backward"))
.getClass());
assertEqualClass(RoundaboutWay.class,
segmentFactory.createSegment(new Member(TestUtils.asWay(10, 11, 12, 13, 10), "")).getClass());
assertEqualClass(RoundaboutWay.class,
segmentFactory.createSegment(new Member(TestUtils.asWay(10, 11, 12, 13, 10), "forward")).getClass());
assertEqualClass(RoundaboutWay.class,
segmentFactory.createSegment(new Member(TestUtils.asWay(10, 11, 12, 13, 10), "backward")).getClass());
}
private void assertEqualClass(Class<?> expected, Class<?> actual) {
assertEquals(expected.getName(), actual.getName());
}
@Test
public void testCreateMemberUnknown() throws Exception {
ConnectableSegment segment = segmentFactory.createSegment(new Member(TestUtils.asWay(1, 2, 3), "unknown"));
assertTrue(segment instanceof FlexibleWay);
}
}