Odps { @Override public Odps clone() { return new Odps(this); } Odps(Account account);  Odps(Account account, AppAccount appAccount);  Odps(Odps odps); void setAccount(Account account); void setAppAccount(AppAccount appAccount); Projects projects(); Tables tables(); Instances instances(); Resources resources(); Functions functions(); Volumes volumes(); Account getAccount(); AppAccount getAppAccount(); String getEndpoint(); void setEndpoint(String endpoint); String getDefaultProject(); void setDefaultProject(String defaultProject); void setUserAgent(String userAgent); String getUserAgent(); LogView logview(); XFlows xFlows(); OfflineModels offlineModels(); @Override Odps clone(); RestClient getRestClient(); String getLogViewHost(); void setLogViewHost(String host); void setAccountFormat(AccountFormat format); AccountFormat getAccountFormat(); void setGlobalSettings(Map<String, String> settings); Map<String, String> getGlobalSettings();  }
@Test public void testClone() { Odps odps1 = OdpsTestUtils.newDefaultOdps(); odps1.instances().setDefaultRunningCluster("test_cluster"); Odps odps2 = odps1.clone(); assertFalse(odps1 == odps2); assertEquals(odps1.getAccount(), odps2.getAccount()); assertEquals(odps1.getUserAgent(), odps2.getUserAgent()); assertEquals(odps1.getEndpoint(), odps2.getEndpoint()); assertEquals(odps1.getDefaultProject(), odps2.getDefaultProject()); assertEquals(odps1.instances().getDefaultRunningCluster(), odps2.instances().getDefaultRunningCluster()); }