Merge branch 'master' of ../controller
[yangtools.git] / yang / yang-parser-spi / src / test / java / org / opendaylight / yangtools / yang / parser / spi / meta / CopyHistoryTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.parser.spi.meta;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertSame;
13 import static org.junit.Assert.assertTrue;
14
15 import org.junit.Test;
16
17 public class CopyHistoryTest {
18
19     @Test
20     public void testSingleton() {
21         final CopyHistory original = CopyHistory.original();
22
23         assertEquals(CopyType.ORIGINAL, original.getLastOperation());
24         assertTrue(original.contains(CopyType.ORIGINAL));
25         assertFalse(original.contains(CopyType.ADDED_BY_USES));
26         assertFalse(original.contains(CopyType.ADDED_BY_AUGMENTATION));
27         assertFalse(original.contains(CopyType.ADDED_BY_USES_AUGMENTATION));
28
29         assertSame(original, CopyHistory.original());
30     }
31
32     @Test
33     public void testAppend() {
34         final CopyHistory original = CopyHistory.original();
35         assertSame(original, original.append(CopyType.ORIGINAL, original));
36
37         final CopyHistory originalUA = original.append(CopyType.ADDED_BY_USES_AUGMENTATION, original);
38         assertEquals(CopyType.ADDED_BY_USES_AUGMENTATION, originalUA.getLastOperation());
39         assertTrue(originalUA.contains(CopyType.ORIGINAL));
40         assertFalse(originalUA.contains(CopyType.ADDED_BY_USES));
41         assertFalse(originalUA.contains(CopyType.ADDED_BY_AUGMENTATION));
42         assertTrue(originalUA.contains(CopyType.ADDED_BY_USES_AUGMENTATION));
43
44         assertSame(originalUA, original.append(CopyType.ADDED_BY_USES_AUGMENTATION, original));
45         assertSame(originalUA, originalUA.append(CopyType.ADDED_BY_USES_AUGMENTATION, original));
46
47         final CopyHistory originalU = original.append(CopyType.ADDED_BY_USES, original);
48         assertEquals(CopyType.ADDED_BY_USES, originalU.getLastOperation());
49         assertTrue(originalU.contains(CopyType.ORIGINAL));
50         assertTrue(originalU.contains(CopyType.ADDED_BY_USES));
51         assertFalse(originalU.contains(CopyType.ADDED_BY_AUGMENTATION));
52         assertFalse(originalU.contains(CopyType.ADDED_BY_USES_AUGMENTATION));
53
54         final CopyHistory uaU = originalUA.append(CopyType.ADDED_BY_USES, original);
55         assertEquals(CopyType.ADDED_BY_USES, uaU.getLastOperation());
56         assertTrue(uaU.contains(CopyType.ORIGINAL));
57         assertTrue(uaU.contains(CopyType.ADDED_BY_USES));
58         assertFalse(uaU.contains(CopyType.ADDED_BY_AUGMENTATION));
59         assertTrue(uaU.contains(CopyType.ADDED_BY_USES_AUGMENTATION));
60
61         assertSame(uaU, originalUA.append(CopyType.ADDED_BY_USES, original));
62
63         final CopyHistory res = originalUA.append(CopyType.ADDED_BY_AUGMENTATION, originalU);
64         assertEquals(CopyType.ADDED_BY_AUGMENTATION, res.getLastOperation());
65         assertTrue(res.contains(CopyType.ORIGINAL));
66         assertTrue(res.contains(CopyType.ADDED_BY_USES));
67         assertTrue(res.contains(CopyType.ADDED_BY_AUGMENTATION));
68         assertTrue(res.contains(CopyType.ADDED_BY_USES_AUGMENTATION));
69     }
70
71 }