ResultSet schemaResultSet1 = buildVarcharResultSetAsRows("schemaResultSet1", new String[] { TEST_SCHEMA }); /* The second time that schemas are asked for, return two */ ResultSet schemaResultSet2 = buildVarcharResultSetAsRows("schemaResultSet2", new String[] { TEST_SCHEMA, "aSchema2" }); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1); expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2); mockHelper.replayAll(); classUnderTest = new SQLDatabaseMetaData(mockSqlConnection); // Check to be sure we get only one schema String[] currentSchemas = classUnderTest.getSchemas(); assertEquals(1, currentSchemas.length); // Now, check to be sure we get both schemas. currentSchemas = classUnderTest.getSchemas(); assertEquals(2, currentSchemas.length); mockHelper.verifyAll();
ResultSet catalogResultSet1 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG }); /* The second time that catalogs are asked for, return two */ ResultSet catalogResultSet2 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG, "aCatalog2" }); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1); expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2); mockHelper.replayAll(); classUnderTest = new SQLDatabaseMetaData(mockSqlConnection); // Check to be sure we get only one schema String[] currentCatalogs = classUnderTest.getCatalogs(); assertEquals(1, currentCatalogs.length); // Now, check to be sure we get both catalogs. currentCatalogs = classUnderTest.getCatalogs(); assertEquals(2, currentCatalogs.length); mockHelper.verifyAll();
Clone fragments detected by clone detection tool
File path: /sql12/test/src/net/sourceforge/squirrel_sql/fw/sql/SQLDatabaseMetaDataTest.java File path: /sql12/test/src/net/sourceforge/squirrel_sql/fw/sql/SQLDatabaseMetaDataTest.java
Method name: void testGetSchemas() Method name: void testGetCatalogs()
Number of AST nodes: 11 Number of AST nodes: 11
1
ResultSet schemaResultSet1 = buildVarcharResultSetAsRows("schemaResultSet1", new String[] { TEST_SCHEMA });	
1
ResultSet catalogResultSet1 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG });
2
		/* The second time that schemas are asked for, return two */
2
		/* The second time that catalogs are asked for, return two */
3
		ResultSet schemaResultSet2 = buildVarcharResultSetAsRows("schemaResultSet2", new String[] { TEST_SCHEMA, "aSchema2" });
3
		ResultSet catalogResultSet2 = buildVarcharResultSetAsRows(null, new String[] { TEST_CATALOG, "aCatalog2" });
4
		expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1);
4
		expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1);
5
		expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2);
5
		expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2);
6
		
7
		mockHelper.replayAll();
6
		mockHelper.replayAll();
8
		classUnderTest = new SQLDatabaseMetaData(mockSqlConnection);
7
		classUnderTest = new SQLDatabaseMetaData(mockSqlConnection);
9
		// Check to be sure we get only one schema
8
		// Check to be sure we get only one schema
10
		String[] currentSchemas = classUnderTest.getSchemas();
9
		String[] currentCatalogs = classUnderTest.getCatalogs();
11
		assertEquals(1, currentSchemas.length);
10
		assertEquals(1, currentCatalogs.length);
12
		// Now, check to be sure we get both schemas.
11
		// Now, check to be sure we get both catalogs.
13
		currentSchemas = classUnderTest.getSchemas();
12
		currentCatalogs = classUnderTest.getCatalogs();
14
		assertEquals(2, currentSchemas.length);
13
		assertEquals(2, currentCatalogs.length);
15
		mockHelper.verifyAll();
14
		mockHelper.verifyAll();
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones locationClones are declared in the same class
Number of node comparisons101
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements11
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    ResultSet schemaResultSet1 = buildVarcharResultSetAsRows("schemaResultSet1", new String[] {TEST_SCHEMA});
    1
    ResultSet schemaResultSet1 = buildVarcharResultSetAsRows("schemaResultSet1", new String[] {TEST_SCHEMA});
    1
    ResultSet catalogResultSet1 = buildVarcharResultSetAsRows(null, new String[] {TEST_CATALOG});
    Differences
    Expression1Expression2Difference
    schemaResultSet1catalogResultSet1VARIABLE_NAME_MISMATCH
    "schemaResultSet1"nullTYPE_COMPATIBLE_REPLACEMENT
    TEST_SCHEMATEST_CATALOGVARIABLE_NAME_MISMATCH
    1
    ResultSet catalogResultSet1 = buildVarcharResultSetAsRows(null, new String[] {TEST_CATALOG});
    2
    ResultSet schemaResultSet2 = buildVarcharResultSetAsRows("schemaResultSet2", new String[] {TEST_SCHEMA, "aSchema2"});
    2
    ResultSet schemaResultSet2 = buildVarcharResultSetAsRows("schemaResultSet2", new String[] {TEST_SCHEMA, "aSchema2"});
    2
    ResultSet catalogResultSet2 = buildVarcharResultSetAsRows(null, new String[] {TEST_CATALOG, "aCatalog2"});
    Differences
    Expression1Expression2Difference
    schemaResultSet2catalogResultSet2VARIABLE_NAME_MISMATCH
    "schemaResultSet2"nullTYPE_COMPATIBLE_REPLACEMENT
    TEST_SCHEMATEST_CATALOGVARIABLE_NAME_MISMATCH
    "aSchema2""aCatalog2"LITERAL_VALUE_MISMATCH
    2
    ResultSet catalogResultSet2 = buildVarcharResultSetAsRows(null, new String[] {TEST_CATALOG, "aCatalog2"});
    3
    expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1);
    3
    expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet1);
    3
    expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1);
    Differences
    Expression1Expression2Difference
    schemaResultSet1catalogResultSet1VARIABLE_NAME_MISMATCH
    getSchemasgetCatalogsMETHOD_INVOCATION_NAME_MISMATCH
    3
    expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet1);
    4
    expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2);
    4
    expect(mockDatabaseMetaData.getSchemas()).andReturn(schemaResultSet2);
    4
    expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2);
    Differences
    Expression1Expression2Difference
    schemaResultSet2catalogResultSet2VARIABLE_NAME_MISMATCH
    getSchemasgetCatalogsMETHOD_INVOCATION_NAME_MISMATCH
    4
    expect(mockDatabaseMetaData.getCatalogs()).andReturn(catalogResultSet2);
    5
    mockHelper.replayAll();
    5
    mockHelper.replayAll();
    6
    classUnderTest = new SQLDatabaseMetaData(mockSqlConnection);
    6
    classUnderTest = new SQLDatabaseMetaData(mockSqlConnection);
    7
    String[] currentSchemas = classUnderTest.getSchemas();
    7
    String[] currentSchemas = classUnderTest.getSchemas();
    7
    String[] currentCatalogs = classUnderTest.getCatalogs();
    Differences
    Expression1Expression2Difference
    currentSchemascurrentCatalogsVARIABLE_NAME_MISMATCH
    getSchemasgetCatalogsMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression classUnderTest.getSchemas() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression classUnderTest.getCatalogs() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7
    String[] currentCatalogs = classUnderTest.getCatalogs();
    8
    assertEquals(1, currentSchemas.length);
    8
    assertEquals(1, currentSchemas.length);
    8
    assertEquals(1, currentCatalogs.length);
    Differences
    Expression1Expression2Difference
    currentSchemascurrentCatalogsVARIABLE_NAME_MISMATCH
    8
    assertEquals(1, currentCatalogs.length);
    9
    currentSchemas = classUnderTest.getSchemas();
    9
    currentSchemas = classUnderTest.getSchemas();
    9
    currentCatalogs = classUnderTest.getCatalogs();
    Differences
    Expression1Expression2Difference
    currentSchemascurrentCatalogsVARIABLE_NAME_MISMATCH
    getSchemasgetCatalogsMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression classUnderTest.getSchemas() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression classUnderTest.getCatalogs() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9
    currentCatalogs = classUnderTest.getCatalogs();
    10
    assertEquals(2, currentSchemas.length);
    10
    assertEquals(2, currentSchemas.length);
    10
    assertEquals(2, currentCatalogs.length);
    Differences
    Expression1Expression2Difference
    currentSchemascurrentCatalogsVARIABLE_NAME_MISMATCH
    10
    assertEquals(2, currentCatalogs.length);
    11
    mockHelper.verifyAll();
    11
    mockHelper.verifyAll();
    Precondition Violations (4)
    Row Violation
    1Expression classUnderTest.getSchemas() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression classUnderTest.getCatalogs() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression classUnderTest.getSchemas() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression classUnderTest.getCatalogs() cannot be parameterized, because it has dependencies to/from statements that will be extracted