package org.osmtools.ra.analyzer; import static org.junit.Assert.*; import java.util.List; import org.junit.Test; import org.osmtools.ra.TestBase; import org.osmtools.ra.TestUtils; import org.osmtools.ra.context.AnalyzerContext; import org.osmtools.ra.context.AnalyzerContextService; import org.osmtools.ra.segment.ConnectableSegment; import org.osmtools.ra.segment.FlexibleWay; import org.osmtools.ra.segment.RoundaboutWay; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.client.RestTemplate; public class RelationMemberServiceTest extends TestBase { @Autowired private RelationMemberService relationMemberService; @Autowired private AnalyzerContextService analyzerContextService; @Autowired private RestTemplate restTemplate; @Test public void testSplitRelationByRole() throws Exception { TestUtils.prepareRestTemplateForRelation(restTemplate, TestUtils.RELATION_37415); AnalyzerContext analyzerContext = analyzerContextService.createAnalyzerContext(TestUtils.RELATION_37415, false); relationMemberService.initSegments(analyzerContext); assertNotNull(analyzerContext.getSegments()); assertEquals(73, analyzerContext.getSegments().size()); } @Test public void testSplitRelationByRoleEmpty() throws Exception { TestUtils.prepareRestTemplateForRelation(restTemplate, TestUtils.RELATION_12320_NECKARTAL_WEG); AnalyzerContext analyzerContext = analyzerContextService.createAnalyzerContext( TestUtils.RELATION_12320_NECKARTAL_WEG, false); relationMemberService.initSegments(analyzerContext); assertNotNull(analyzerContext.getSegments()); assertEquals(931, analyzerContext.getSegments().size()); assertEquals(926, countInstances(FlexibleWay.class, analyzerContext.getSegments())); assertEquals(5, countInstances(RoundaboutWay.class, analyzerContext.getSegments())); } private int countInstances(Class<?> classToCount, List<ConnectableSegment> segments) { int instances = 0; for (ConnectableSegment segment : segments) { if (segment.getClass().getName().equals(classToCount.getName())) instances++; } return instances; } }