11d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert/* 21d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Copyright (C) 2009 The Guava Authors 31d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * 41d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 51d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * you may not use this file except in compliance with the License. 61d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * You may obtain a copy of the License at 71d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * 81d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 91d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * 101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * See the License for the specific language governing permissions and 141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * limitations under the License. 151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */ 161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpackage com.google.common.collect; 181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert/** 201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Tests {@link ForwardingTable}. 211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * 221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * @author Gregory Kick 231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */ 241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpublic class ForwardingTableTest extends ForwardingTestCase { 251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert private Table<String, Integer, Boolean> forward; 271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Override public void setUp() throws Exception { 291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert super.setUp(); 301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert /* 311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Class parameters must be raw, so we can't create a proxy with generic 321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * type arguments. The created proxy only records calls and returns null, so 331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * the type is irrelevant at runtime. 341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */ 351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @SuppressWarnings("unchecked") 361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert final Table<String, Integer, Boolean> table = 371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert createProxyInstance(Table.class); 381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward = new ForwardingTable<String, Integer, Boolean>() { 391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert @Override protected Table<String, Integer, Boolean> delegate() { 401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert return table; 411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert }; 431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 441d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testHashCode() { 461d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.hashCode(); 471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[hashCode]", getCalls()); 481d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 491d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 501d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testCellSet() { 511d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.cellSet(); 521d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[cellSet]", getCalls()); 531d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 541d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 551d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testClear() { 561d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.clear(); 571d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[clear]", getCalls()); 581d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 591d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 601d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testColumn() { 611d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.column(1); 621d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[column(Object)]", getCalls()); 631d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 641d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 651d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testColumnKeySet() { 661d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.columnKeySet(); 671d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[columnKeySet]", getCalls()); 681d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 691d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 701d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testColumnMap() { 711d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.columnMap(); 721d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[columnMap]", getCalls()); 731d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 741d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 751d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testContains() { 761d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.contains("blah", 1); 771d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[contains(Object,Object)]", getCalls()); 781d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 791d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 801d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testContainsColumn() { 811d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.containsColumn(1); 821d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[containsColumn(Object)]", getCalls()); 831d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 841d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 851d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testContainsRow() { 861d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.containsRow("blah"); 871d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[containsRow(Object)]", getCalls()); 881d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 891d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 901d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testContainsValue() { 911d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.containsValue(false); 921d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[containsValue(Object)]", getCalls()); 931d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 941d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 951d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testGet() { 961d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.get("blah", 1); 971d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[get(Object,Object)]", getCalls()); 981d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 991d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1001d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testIsEmpty() { 1011d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.isEmpty(); 1021d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[isEmpty]", getCalls()); 1031d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1041d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1051d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testPut() { 1061d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.put("blah", 1, false); 1071d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[put(Object,Object,Object)]", getCalls()); 1081d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1091d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testPutAll() { 1111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.putAll(HashBasedTable.<String, Integer, Boolean>create()); 1121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[putAll(Table)]", getCalls()); 1131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testRemove() { 1161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.remove("blah", 1); 1171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[remove(Object,Object)]", getCalls()); 1181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testRow() { 1211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.row("String"); 1221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[row(Object)]", getCalls()); 1231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testRowKeySet() { 1261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.rowKeySet(); 1271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[rowKeySet]", getCalls()); 1281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testRowMap() { 1311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.rowMap(); 1321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[rowMap]", getCalls()); 1331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testSize() { 1361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.size(); 1371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[size]", getCalls()); 1381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testValues() { 1411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.values(); 1421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[values]", getCalls()); 1431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1441d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert public void testEqualsObject() { 1461d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert forward.equals(null); 1471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert assertEquals("[equals(Object)]", getCalls()); 1481d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert } 1491d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert 1501d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert} 151