blob: c93b10fb4805f510a69d045dc5566ba0c9c1cee6 [file] [log] [blame]
Jordan Halterman07f052b2017-10-08 14:22:41 -07001/*
2 * Copyright 2017-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.store.primitives.impl;
17
18import java.util.Arrays;
19import java.util.List;
20
21import org.junit.Test;
22import org.onosproject.cluster.DefaultPartition;
23import org.onosproject.cluster.NodeId;
24import org.onosproject.cluster.Partition;
25import org.onosproject.cluster.PartitionId;
26import org.onosproject.core.Version;
27
28import static org.junit.Assert.assertTrue;
29
30/**
31 * Partition manager test.
32 */
33public class PartitionManagerTest {
34
35 @Test
36 public void testComputeInitialIncompletePartition() throws Exception {
37 Partition sourcePartition = new DefaultPartition(
38 PartitionId.from(1),
39 Version.version("1.0.0"),
40 Arrays.asList(
41 NodeId.nodeId("1"),
42 NodeId.nodeId("2"),
43 NodeId.nodeId("3")));
44 Version targetVersion = Version.version("1.0.1");
45 List<NodeId> members = Arrays.asList(
46 NodeId.nodeId("1"),
47 NodeId.nodeId("2"));
48 Partition forkedPartition = PartitionManager.computeInitialPartition(sourcePartition, targetVersion, members);
49 assertTrue(forkedPartition.getMembers().size() == 2);
50 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("1")));
51 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("2")));
52 }
53
54 @Test
55 public void testComputeInitialCompletePartition() throws Exception {
56 Partition sourcePartition = new DefaultPartition(
57 PartitionId.from(1),
58 Version.version("1.0.0"),
59 Arrays.asList(
60 NodeId.nodeId("3"),
61 NodeId.nodeId("4"),
62 NodeId.nodeId("5")));
63 Version targetVersion = Version.version("1.0.1");
64 List<NodeId> members = Arrays.asList(
65 NodeId.nodeId("1"),
66 NodeId.nodeId("2"),
67 NodeId.nodeId("3"),
68 NodeId.nodeId("4"),
69 NodeId.nodeId("5"));
70 Partition forkedPartition = PartitionManager.computeInitialPartition(sourcePartition, targetVersion, members);
71 assertTrue(forkedPartition.getMembers().size() == 4);
72 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("1")));
73 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("3")));
74 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("4")));
75 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("5")));
76 }
77
78 @Test
79 public void testComputeFinalIncompletePartition() throws Exception {
80 Partition sourcePartition = new DefaultPartition(
81 PartitionId.from(1),
82 Version.version("1.0.0"),
83 Arrays.asList(
84 NodeId.nodeId("1"),
85 NodeId.nodeId("2"),
86 NodeId.nodeId("3")));
87 Version targetVersion = Version.version("1.0.1");
88 List<NodeId> members = Arrays.asList(
89 NodeId.nodeId("1"),
90 NodeId.nodeId("2"));
91 Partition forkedPartition = PartitionManager.computeFinalPartition(sourcePartition, targetVersion, members);
92 assertTrue(forkedPartition.getMembers().size() == 2);
93 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("1")));
94 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("2")));
95 }
96
97 @Test
98 public void testComputeFinalCompletePartition() throws Exception {
99 Partition sourcePartition = new DefaultPartition(
100 PartitionId.from(1),
101 Version.version("1.0.0"),
102 Arrays.asList(
103 NodeId.nodeId("3"),
104 NodeId.nodeId("4"),
105 NodeId.nodeId("5")));
106 Version targetVersion = Version.version("1.0.1");
107 List<NodeId> members = Arrays.asList(
108 NodeId.nodeId("1"),
109 NodeId.nodeId("2"),
110 NodeId.nodeId("3"),
111 NodeId.nodeId("4"),
112 NodeId.nodeId("5"));
113 Partition forkedPartition = PartitionManager.computeFinalPartition(sourcePartition, targetVersion, members);
114 assertTrue(forkedPartition.getMembers().size() == 3);
115 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("3")));
116 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("4")));
117 assertTrue(forkedPartition.getMembers().contains(NodeId.nodeId("5")));
118 }
119
120}