summaryrefslogtreecommitdiffstats
path: root/quantum-model/src/test/java/com/woorea/openstack/quantum/model/NetworkTest.java
blob: b6255b993d6c638650a7fd98f2764da429f37d03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package com.woorea.openstack.quantum.model;

import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;

import java.util.Arrays;

import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Before;
import org.junit.Test;

public class NetworkTest {

    private static final String ID = "testId";

    private static final boolean ADMIN_STATE_UP = true;

    private static final String NAME = "name";

    private static final String TENANT_ID = "tenantId";

    private static final String SHARED = "shared";

    private static final String STATUS = "status";

    private static final String SUBNET = "subnet";

    private static final String PROVIDER_NETWORK_TYPE = "vlan";

    private static final String PROVIDER_PHYSICAL_NETWORK = "physicalNetwork";

    private static final int PROVIDER_SEGMENTATION_ID = 100;

    private static final String ROUTER_EXTERNAL = "routerExternal";

    /**
     * JSON with read only attributes.
     */
    private static final String NETWORK_JSON = "{"
            + "  \"network\" : {"
            + "    \"id\" : \"" + ID + "\","
            + "    \"status\" : \"" + STATUS + "\","
            + "    \"subnets\" : [ \"" + SUBNET + "\" ]"
            + "  }"
            + "}";

    private ObjectMapper objectMapper;

    private String serializedNetwork;

    @Before
    public void setUp() throws Exception {
        objectMapper = PortTest.initializeObjectMapper();
    }

    @Test
    public void testSerialization() throws Exception {
        Network network = new Network();
        network.setId(ID);
        network.setProviderNetworkType(PROVIDER_NETWORK_TYPE);
        network.setProviderPhysicalNetwork(PROVIDER_PHYSICAL_NETWORK);
        network.setProviderSegmentationId(PROVIDER_SEGMENTATION_ID);
        network.setAdminStateUp(ADMIN_STATE_UP);
        network.setSubnets(Arrays.asList(SUBNET));
        network.setRouterExternal(ROUTER_EXTERNAL);
        network.setName(NAME);
        network.setShared(SHARED);
        network.setTenantId(TENANT_ID);

        serializedNetwork = objectMapper.writeValueAsString(network);
        assertThat(serializedNetwork, not(containsString(ID)));
        assertThat(serializedNetwork, not(containsString(STATUS)));
        assertThat(serializedNetwork, not(containsString(SUBNET)));
        assertThat(serializedNetwork, containsString("\"admin_state_up\" : " + ADMIN_STATE_UP));
        assertThat(serializedNetwork, containsString(NAME));
        assertThat(serializedNetwork, containsString(SHARED));
        assertThat(serializedNetwork, containsString(TENANT_ID));
        assertThat(serializedNetwork, containsString(ROUTER_EXTERNAL));
        assertThat(serializedNetwork, containsString(PROVIDER_NETWORK_TYPE));
        assertThat(serializedNetwork, containsString(PROVIDER_PHYSICAL_NETWORK));
        assertThat(serializedNetwork, containsString(Integer.toString(PROVIDER_SEGMENTATION_ID)));
    }

    @Test
    public void testSerializationEmpty() throws Exception {
        Network network = new Network();
        serializedNetwork = objectMapper.writeValueAsString(network);

        assertThat(serializedNetwork, containsString("\"network\" : { }"));
    }

    @Test
    public void testDeserializationReadOnlyFields() throws Exception {
        Network network = objectMapper.readValue(NETWORK_JSON, Network.class);

        assertThat(network.getId(), is(equalTo(ID)));
        assertThat(network.getSubnets(), hasItem(equalTo(SUBNET)));
        assertThat(network.getStatus(), is(equalTo(STATUS)));
    }

    @Test
    public void testDeserialization() throws Exception {
        testSerialization();
        Network network = objectMapper.readValue(serializedNetwork, Network.class);

        assertThat(network.getName(), is(equalTo(NAME)));
        assertThat(network.isAdminStateUp(), is(equalTo(ADMIN_STATE_UP)));
        assertThat(network.getShared(), is(equalTo(SHARED)));
        assertThat(network.getTenantId(), is(equalTo(TENANT_ID)));
        assertThat(network.getRouterExternal(), is(equalTo(ROUTER_EXTERNAL)));
        assertThat(network.getProviderNetworkType(), is(equalTo(PROVIDER_NETWORK_TYPE)));
        assertThat(network.getProviderPhysicalNetwork(), is(equalTo(PROVIDER_PHYSICAL_NETWORK)));
        assertThat(network.getProviderSegmentationId(), is(equalTo(PROVIDER_SEGMENTATION_ID)));
    }
}