/* * Licensed to GraphHopper GmbH under one or more contributor * license agreements. See the NOTICE file distributed with this work for * additional information regarding copyright ownership. * * GraphHopper GmbH licenses this file to you 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 com.graphhopper.routing.util; import com.graphhopper.reader.ReaderNode; import com.graphhopper.reader.ReaderWay; import com.graphhopper.util.Helper; import org.junit.Test; import java.text.DateFormat; import java.util.Date; import static org.junit.Assert.*; /** * @author Peter Karich * @author zstadler */ public class Car4WDFlagEncoderTest extends CarFlagEncoderTest { private final EncodingManager em = new EncodingManager("car4wd,bike,foot"); private final Car4WDFlagEncoder encoder = (Car4WDFlagEncoder) em.getEncoder("car4wd"); @Override @Test public void testAccess() { ReaderWay way = new ReaderWay(1); assertFalse(encoder.acceptWay(way) > 0); way.setTag("highway", "service"); assertTrue(encoder.acceptWay(way) > 0); way.setTag("access", "no"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "track"); assertTrue(encoder.acceptWay(way) > 0); way.setTag("motorcar", "no"); assertFalse(encoder.acceptWay(way) > 0); // for now allow grade1+2+3 for every country, see #253 way.clearTags(); way.setTag("highway", "track"); way.setTag("tracktype", "grade2"); assertTrue(encoder.acceptWay(way) > 0); // This is the only difference from a "car" way.setTag("tracktype", "grade4"); assertTrue(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "service"); way.setTag("access", "delivery"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "unclassified"); way.setTag("ford", "yes"); assertFalse(encoder.acceptWay(way) > 0); way.setTag("motorcar", "yes"); assertTrue(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("route", "ferry"); assertTrue(encoder.acceptWay(way) > 0); assertTrue(encoder.isFerry(encoder.acceptWay(way))); way.setTag("motorcar", "no"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("route", "ferry"); way.setTag("foot", "yes"); assertFalse(encoder.acceptWay(way) > 0); assertFalse(encoder.isFerry(encoder.acceptWay(way))); way.clearTags(); way.setTag("access", "yes"); way.setTag("motor_vehicle", "no"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "service"); way.setTag("access", "yes"); way.setTag("motor_vehicle", "no"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "service"); way.setTag("access", "no"); way.setTag("motorcar", "yes"); assertTrue(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "service"); way.setTag("access", "emergency"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "service"); way.setTag("motor_vehicle", "emergency"); assertFalse(encoder.acceptWay(way) > 0); DateFormat simpleDateFormat = Helper.createFormatter("yyyy MMM dd"); way.clearTags(); way.setTag("highway", "road"); way.setTag("access:conditional", "no @ (" + simpleDateFormat.format(new Date().getTime()) + ")"); assertFalse(encoder.acceptWay(way) > 0); way.clearTags(); way.setTag("highway", "road"); way.setTag("access", "no"); way.setTag("access:conditional", "yes @ (" + simpleDateFormat.format(new Date().getTime()) + ")"); assertTrue(encoder.acceptWay(way) > 0); } }