// Path: kawala-testing/src/main/java/com/kaching/platform/testing/Assert.java
// @SuppressWarnings("finally")
// public static void assertNotEquals(Object expected, Object actual) {
//   boolean wasEqual = false;
//   try {
//     assertEquals(expected, actual);
//     wasEqual = true;
//   } catch (AssertionError e) {
//   } finally {
//     if (wasEqual) {
//       fail();
//     }
//     return;
//   }
// }
// 
// Path: kawala-common/src/main/java/com/kaching/platform/common/Pair.java
// public class Pair<S, T> {
// 
//   public final S left;
//   public final T right;
// 
//   public static <S, T> Pair<S, T> of(S left, T right) {
//     return new Pair<S, T>(left, right);
//   }
// 
//   public Pair(S left, T right) {
//     this.left = left;
//     this.right = right;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hashCode(left, right);
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj) {
//       return true;
//     }
//     if (obj == null) {
//       return false;
//     }
//     if (getClass() != obj.getClass()) {
//       return false;
//     }
// 
//     Pair<?, ?> other = (Pair<?, ?>) obj;
//     return Objects.equal(left, other.left) &&
//            Objects.equal(right, other.right);
//   }
// 
//   @Override
//   public String toString() {
//     return "(" + left + "," + right + ")";
//   }
// 
// }


import static com.kaching.platform.testing.Assert.assertNotEquals;
import static org.junit.Assert.assertEquals;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.google.inject.TypeLiteral;
import com.kaching.platform.common.Pair;
/**
 * Copyright 2010 Wealthfront 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 com.kaching.platform.guice;





public class TypeLiteralsTest {

  @Test
  public void get1() throws Exception {
    TypeLiteral<?> expected = new TypeLiteral<List<Foo>>() {};
    TypeLiteral<?> actual = TypeLiterals.get(List.class, Foo.class);

    assertEquals(expected, actual);
  }

  @Test
  public void get2() throws Exception {
// Path: kawala-testing/src/main/java/com/kaching/platform/testing/Assert.java
// @SuppressWarnings("finally")
// public static void assertNotEquals(Object expected, Object actual) {
//   boolean wasEqual = false;
//   try {
//     assertEquals(expected, actual);
//     wasEqual = true;
//   } catch (AssertionError e) {
//   } finally {
//     if (wasEqual) {
//       fail();
//     }
//     return;
//   }
// }
// 
// Path: kawala-common/src/main/java/com/kaching/platform/common/Pair.java
// public class Pair<S, T> {
// 
//   public final S left;
//   public final T right;
// 
//   public static <S, T> Pair<S, T> of(S left, T right) {
//     return new Pair<S, T>(left, right);
//   }
// 
//   public Pair(S left, T right) {
//     this.left = left;
//     this.right = right;
//   }
// 
//   @Override
//   public int hashCode() {
//     return Objects.hashCode(left, right);
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj) {
//       return true;
//     }
//     if (obj == null) {
//       return false;
//     }
//     if (getClass() != obj.getClass()) {
//       return false;
//     }
// 
//     Pair<?, ?> other = (Pair<?, ?>) obj;
//     return Objects.equal(left, other.left) &&
//            Objects.equal(right, other.right);
//   }
// 
//   @Override
//   public String toString() {
//     return "(" + left + "," + right + ")";
//   }
// 
// }


// Path: kawala-guice/src/test/java/com/kaching/platform/guice/TypeLiteralsTest.java
import static com.kaching.platform.testing.Assert.assertNotEquals;
import static org.junit.Assert.assertEquals;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.google.inject.TypeLiteral;
import com.kaching.platform.common.Pair;

/**
 * Copyright 2010 Wealthfront 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 com.kaching.platform.guice;





public class TypeLiteralsTest {

  @Test
  public void get1() throws Exception {
    TypeLiteral<?> expected = new TypeLiteral<List<Foo>>() {};
    TypeLiteral<?> actual = TypeLiterals.get(List.class, Foo.class);

    assertEquals(expected, actual);
  }

  @Test
  public void get2() throws Exception {
    TypeLiteral<?> expected = new TypeLiteral<Pair<Integer, Double>>() {};