File path: /columba-1.4-src/mail/src/test/java/org/columba/mail/folder/imap/IMAPSyncTest.java | File path: /columba-1.4-src/mail/src/test/java/org/columba/mail/folder/imap/IMAPSyncTest.java | |||
Method name: void testNewAndRemovedMails()
|
Method name: void testSimpleRemovedMails()
|
|||
Number of AST nodes: 26 | Number of AST nodes: 22 | |||
1 | IPersistantHeaderList testList = new TestHeaderList();↵ | 1 | IPersistantHeaderList testList = new TestHeaderList();↵ | |
2 | MailboxStatus status = new MailboxStatus();↵ | 2 | MailboxStatus status = new MailboxStatus();↵ | |
3 | status.setMessages(100);↵ | 3 | status.setMessages(100);↵ | |
4 | status.setUidNext(101);↵ | 4 | status.setUidNext(101);↵ | |
5 | TestServer testServer = new TestServer(status);↵ | 5 | TestServer testServer = new TestServer(status);↵ | |
6 | ↵ | 6 | ↵ | |
7 | IMAPFolder folder = new IMAPFolder(testList, testServer);↵ | 7 | IMAPFolder folder = new IMAPFolder(testList, testServer);↵ | |
8 | ↵ | 8 | ↵ | |
9 | // Add some messages↵ | 9 | // Add some messages↵ | |
10 | for( int i=1; i<=100; i++) {↵ | 10 | for( int i=1; i<=100; i++) {↵ | |
11 | ColumbaHeader header = new ColumbaHeader();↵ | 11 | ColumbaHeader header = new ColumbaHeader();↵ | |
12 | header.set("columba.uid", i);↵ | 12 | header.set("columba.uid", i);↵ | |
13 | ↵ | 13 | ↵ | |
14 | testList.add(header, i);↵ | 14 | testList.add(header, i);↵ | |
15 | testServer.addHeader(header,i);↵ | 15 | testServer.addHeader(header,i);↵ | |
16 | }↵ | 16 | }↵ | |
17 | ↵ | 17 | ↵ | |
18 | ↵ | 18 | ↵ | |
19 | // Add some new messages↵ | 19 | // ↵ | |
20 | // and remove the same number of old messages↵ | |||
21 | for( int i=1; i<=10; i++) {↵ | |||
22 | ColumbaHeader header = new ColumbaHeader();↵ | |||
23 | header.set("columba.uid", i+100);↵ | |||
24 | testServer.addHeader(header,i+100);↵ | 20 | Check for the new messages↵ | |
21 | for( int i=1; i<=10; i++) {↵ | |||
25 | testServer.removeHeader(100 - 3 * i);↵ | 22 | testServer.removeHeader(100 - 3 * i);↵ | |
26 | ↵ | 23 | ↵ | |
27 | }↵ | 24 | }↵ | |
28 | status.setMessages(100);↵ | 25 | status.setMessages(↵ | |
29 | status.setUidNext(111);↵ | 26 | 90);↵ | |
30 | assertEquals(100, testList.count()); ↵ | 27 | assertEquals(100, testList.count()); ↵ | |
31 | folder.synchronizeHeaderlist();↵ | 28 | folder.synchronizeHeaderlist();↵ | |
32 | ↵ | 29 | ↵ | |
33 | // Check for success↵ | 30 | // Check for success↵ | |
34 | assertEquals(100, testList.count());↵ | 31 | assertEquals(90, testList.count());↵ | |
35 | List keys = Arrays.asList(testList.getUids());↵ | 32 | List keys = Arrays.asList(testList.getUids());↵ | |
36 | for( Object uid: keys) {↵ | 33 | for( Object uid: keys) {↵ | |
37 | if(testServer.getHeaderList().exists(uid) == false) {↵ | 34 | if(testServer.getHeaderList().exists(uid) == false) {↵ | |
38 | System.out.println("UID is removed but not from headerlist: " + uid);↵ | 35 | System.out.println("UID is removed but not from headerlist: " + uid);↵ | |
39 | assertTrue(false);↵ | 36 | assertTrue(false);↵ | |
40 | }↵ | 37 | }↵ | |
41 | } | 38 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.8 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 123 |
Number of mapped statements | 22 |
Number of unmapped statements in the first code fragment | 4 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 10.5 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | IPersistantHeaderList testList = new TestHeaderList(); | 1 | IPersistantHeaderList testList = new TestHeaderList(); | |||||||||||
2 | MailboxStatus status = new MailboxStatus(); | 2 | MailboxStatus status = new MailboxStatus(); | |||||||||||
3 | status.setMessages(100); | 3 | status.setMessages(100); | |||||||||||
4 | status.setUidNext(101); | 4 | status.setUidNext(101); | |||||||||||
5 | TestServer testServer = new TestServer(status); | 5 | TestServer testServer = new TestServer(status); | |||||||||||
6 | IMAPFolder folder = new IMAPFolder(testList, testServer); | 6 | IMAPFolder folder = new IMAPFolder(testList, testServer); | |||||||||||
7 | for (int i = 1; i <= 100; i++) | 7 | for (int i = 1; i <= 100; i++) | |||||||||||
8 | ColumbaHeader header = new ColumbaHeader(); | 8 | ColumbaHeader header = new ColumbaHeader(); | |||||||||||
9 | header.set("columba.uid", i); | 9 | header.set("columba.uid", i); | |||||||||||
10 | testList.add(header, i); | 10 | testList.add(header, i); | |||||||||||
11 | testServer.addHeader(header, i); | 11 | testServer.addHeader(header, i); | |||||||||||
12 | for (int i = 1; i <= 10; i++) | 12 | for (int i = 1; i <= 10; i++) | |||||||||||
13 | ColumbaHeader header = new ColumbaHeader(); |
| | |||||||||||
14 | header.set("columba.uid", i + 100); |
| | |||||||||||
15 | testServer.addHeader(header, i + 100); |
| | |||||||||||
16 | testServer.removeHeader(100 - 3 * i); | 13 | testServer.removeHeader(100 - 3 * i); | |||||||||||
17 | status.setMessages(100); |
| 14 | status.setMessages(90); | ||||||||||
18 | status.setUidNext(111); | | ||||||||||||
19 | assertEquals(100, testList.count()); |
| 17 | assertEquals(90, testList.count()); | ||||||||||
20 | folder.synchronizeHeaderlist(); | 16 | folder.synchronizeHeaderlist(); | |||||||||||
21 | assertEquals(100, testList.count()); | 15 | assertEquals(100, testList.count()); | |||||||||||
22 | List keys = Arrays.asList(testList.getUids()); | 18 | List keys = Arrays.asList(testList.getUids()); | |||||||||||
23 | for (Object uid : keys) | 19 | for (Object uid : keys) | |||||||||||
24 | if (testServer.getHeaderList().exists(uid) == false) | 20 | if (testServer.getHeaderList().exists(uid) == false) | |||||||||||
25 | System.out.println("UID is removed but not from headerlist: " + uid); | 21 | System.out.println("UID is removed but not from headerlist: " + uid); | |||||||||||
26 | assertTrue(false); | 22 | assertTrue(false); |
Row | Violation |
---|---|
1 | Unmatched statement ColumbaHeader header=new ColumbaHeader(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement header.set("columba.uid",i + 100); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement testServer.addHeader(header,i + 100); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Clone fragment #1 returns variables i, testServer, status , while Clone fragment #2 returns variables |