// Path: cacheio-repository/src/main/java/com/mobilejazz/cacheio/mappers/DefaultQueryMapper.java
// public class DefaultQueryMapper implements KeyMapper<DefaultQuery> {
// 
//   @Override public String toString(DefaultQuery model) {
//     checkArgument(model, "DefaultQuery == null");
//     return model.getId();
//   }
// 
//   @Override public DefaultQuery fromString(String str) {
//     checkArgument(str, "DefaultQuery string value == null");
//     return new DefaultQuery(str);
//   }
// }
// 
// Path: cacheio-repository/src/main/java/com/mobilejazz/cacheio/query/DefaultQuery.java
// public class DefaultQuery implements Query {
// 
//   private final String id;
// 
//   public DefaultQuery(String id) {
//     this.id = id;
//   }
// 
//   @Override public String getId() {
//     return this.id;
//   }
// 
//   @Override public boolean equals(Object o) {
//     if (this == o) return true;
//     if (o == null || getClass() != o.getClass()) return false;
// 
//     DefaultQuery query = (DefaultQuery) o;
// 
//     return !(id != null ? !id.equals(query.id) : query.id != null);
// 
//   }
// 
//   @Override public int hashCode() {
//     return id != null ? id.hashCode() : 0;
//   }
// }


import com.mobilejazz.cacheio.mappers.DefaultQueryMapper;
import com.mobilejazz.cacheio.query.DefaultQuery;
import org.junit.Before;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
/*
 * Copyright (C) 2016 Mobile Jazz
 *
 *  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 com.mobilejazz.cacheio;



public class DefaultQueryMapperTests {

  private DefaultQueryMapper mapper;
  public static final String FAKE_QUERY = "fake.query";

  @Before public void setUp() throws Exception {
    mapper = new DefaultQueryMapper();
  }

  @Test(expected = IllegalArgumentException.class) @SuppressWarnings("ResultOfMethodCallIgnored")
  public void shouldThrowIllegalArgumentExceptionIfMappingToStringWithNullValue() {
    mapper.toString(null);
  }

  @Test(expected = IllegalArgumentException.class) @SuppressWarnings("ResultOfMethodCallIgnored")
  public void shouldThrowIllegalArgumentExceptionIfMappingFromStringWithNullValue() {
    mapper.fromString(null);
  }

  @Test public void shouldMappingToDefaultQueryToStringValue() throws Exception {
    String value = mapper.toString(givenAFakeDefaultQuery());

    assertThat(value).isNotNull();
    assertThat(value).isEqualTo(FAKE_QUERY);
  }

  @Test public void shouldMappingFromStringToDefaultQuery() throws Exception {
// Path: cacheio-repository/src/main/java/com/mobilejazz/cacheio/mappers/DefaultQueryMapper.java
// public class DefaultQueryMapper implements KeyMapper<DefaultQuery> {
// 
//   @Override public String toString(DefaultQuery model) {
//     checkArgument(model, "DefaultQuery == null");
//     return model.getId();
//   }
// 
//   @Override public DefaultQuery fromString(String str) {
//     checkArgument(str, "DefaultQuery string value == null");
//     return new DefaultQuery(str);
//   }
// }
// 
// Path: cacheio-repository/src/main/java/com/mobilejazz/cacheio/query/DefaultQuery.java
// public class DefaultQuery implements Query {
// 
//   private final String id;
// 
//   public DefaultQuery(String id) {
//     this.id = id;
//   }
// 
//   @Override public String getId() {
//     return this.id;
//   }
// 
//   @Override public boolean equals(Object o) {
//     if (this == o) return true;
//     if (o == null || getClass() != o.getClass()) return false;
// 
//     DefaultQuery query = (DefaultQuery) o;
// 
//     return !(id != null ? !id.equals(query.id) : query.id != null);
// 
//   }
// 
//   @Override public int hashCode() {
//     return id != null ? id.hashCode() : 0;
//   }
// }


// Path: cacheio-repository/src/test/java/com/mobilejazz/cacheio/DefaultQueryMapperTests.java
import com.mobilejazz.cacheio.mappers.DefaultQueryMapper;
import com.mobilejazz.cacheio.query.DefaultQuery;
import org.junit.Before;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;

/*
 * Copyright (C) 2016 Mobile Jazz
 *
 *  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 com.mobilejazz.cacheio;



public class DefaultQueryMapperTests {

  private DefaultQueryMapper mapper;
  public static final String FAKE_QUERY = "fake.query";

  @Before public void setUp() throws Exception {
    mapper = new DefaultQueryMapper();
  }

  @Test(expected = IllegalArgumentException.class) @SuppressWarnings("ResultOfMethodCallIgnored")
  public void shouldThrowIllegalArgumentExceptionIfMappingToStringWithNullValue() {
    mapper.toString(null);
  }

  @Test(expected = IllegalArgumentException.class) @SuppressWarnings("ResultOfMethodCallIgnored")
  public void shouldThrowIllegalArgumentExceptionIfMappingFromStringWithNullValue() {
    mapper.fromString(null);
  }

  @Test public void shouldMappingToDefaultQueryToStringValue() throws Exception {
    String value = mapper.toString(givenAFakeDefaultQuery());

    assertThat(value).isNotNull();
    assertThat(value).isEqualTo(FAKE_QUERY);
  }

  @Test public void shouldMappingFromStringToDefaultQuery() throws Exception {
    DefaultQuery query = mapper.fromString(FAKE_QUERY);