private void testMatch(RequestMethodsRequestCondition condition, RequestMethod method)
     throws Exception {
   ServerWebExchange exchange = createExchange(method.name());
   RequestMethodsRequestCondition actual = condition.getMatchingCondition(exchange);
   assertNotNull(actual);
   assertEquals(Collections.singleton(method), actual.getContent());
 }
  @Test
  public void combine() {
    RequestMethodsRequestCondition condition1 = new RequestMethodsRequestCondition(GET);
    RequestMethodsRequestCondition condition2 = new RequestMethodsRequestCondition(POST);

    RequestMethodsRequestCondition result = condition1.combine(condition2);
    assertEquals(2, result.getContent().size());
  }
 @Test
 public void getMatchingConditionWithEmptyConditions() throws Exception {
   RequestMethodsRequestCondition condition = new RequestMethodsRequestCondition();
   for (RequestMethod method : RequestMethod.values()) {
     if (!OPTIONS.equals(method)) {
       ServerWebExchange exchange = createExchange(method.name());
       assertNotNull(condition.getMatchingCondition(exchange));
     }
   }
   testNoMatch(condition, OPTIONS);
 }
  @Test
  public void compareTo() throws Exception {
    RequestMethodsRequestCondition c1 = new RequestMethodsRequestCondition(GET, HEAD);
    RequestMethodsRequestCondition c2 = new RequestMethodsRequestCondition(POST);
    RequestMethodsRequestCondition c3 = new RequestMethodsRequestCondition();

    ServerWebExchange exchange = createExchange();

    int result = c1.compareTo(c2, exchange);
    assertTrue("Invalid comparison result: " + result, result < 0);

    result = c2.compareTo(c1, exchange);
    assertTrue("Invalid comparison result: " + result, result > 0);

    result = c2.compareTo(c3, exchange);
    assertTrue("Invalid comparison result: " + result, result < 0);

    result = c1.compareTo(c1, exchange);
    assertEquals("Invalid comparison result ", 0, result);
  }
 private void testNoMatch(RequestMethodsRequestCondition condition, RequestMethod method)
     throws Exception {
   ServerWebExchange exchange = createExchange(method.name());
   assertNull(condition.getMatchingCondition(exchange));
 }