2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.yangtools.yang.parser.spi.meta;
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;
15 import org.junit.Test;
17 public class CopyHistoryTest {
20 public void testSingleton() {
21 final CopyHistory original = CopyHistory.original();
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));
29 assertSame(original, CopyHistory.original());
33 public void testAppend() {
34 final CopyHistory original = CopyHistory.original();
35 assertSame(original, original.append(CopyType.ORIGINAL, original));
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));
44 assertSame(originalUA, original.append(CopyType.ADDED_BY_USES_AUGMENTATION, original));
45 assertSame(originalUA, originalUA.append(CopyType.ADDED_BY_USES_AUGMENTATION, original));
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));
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));
61 assertSame(uaU, originalUA.append(CopyType.ADDED_BY_USES, original));
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));