/* * Copyright 2013-2017 (c) MuleSoft, Inc. * * 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.raml.jaxrs.model; import com.google.common.collect.Lists; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import java.util.HashMap; import java.util.Map; import java.util.NoSuchElementException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; public class HttpVerbTest { @Rule public ExpectedException expectedException = ExpectedException.none(); @Test public void testVerbs() { for (HttpVerb verb : HttpVerb.values()) { switch (verb) { case DELETE: assertEquals("DELETE", verb.getString()); break; case GET: assertEquals("GET", verb.getString()); break; case HEAD: assertEquals("HEAD", verb.getString()); break; case OPTIONS: assertEquals("OPTIONS", verb.getString()); break; case PATCH: assertEquals("PATCH", verb.getString()); break; case POST: assertEquals("POST", verb.getString()); break; case PUT: assertEquals("PUT", verb.getString()); break; default: throw new RuntimeException("extend this classe's tests with the missing item"); } } } @Test public void testFromStringValidValues() { Map<String, HttpVerb> expectedPairings = new HashMap<>(HttpVerb.values().length); for (HttpVerb verb : HttpVerb.values()) { expectedPairings.put(verb.getString(), verb); } for (Map.Entry<String, HttpVerb> entry : expectedPairings.entrySet()) { HttpVerb verb = entry.getValue(); String string = entry.getKey(); assertSame(verb, HttpVerb.fromString(string).get()); assertSame(verb, HttpVerb.fromStringUnchecked(string)); } } @Test public void testFromStringInvalidValues() { Iterable<String> invalidValues = Lists.newArrayList("header", "glock", "fackalacabeza", "put", "poute"); for (String value : invalidValues) { expectedException.expect(NoSuchElementException.class); HttpVerb.fromStringUnchecked(value); expectedException = ExpectedException.none(); assertFalse(HttpVerb.fromString(value).isPresent()); } } }