summaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/VersionStatusSerializerTest.java
blob: feaf128985387976ed687122114f364358ca4576 (plain) (blame)
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
package com.yahoo.vespa.hosted.controller.persistence;

import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.vespa.hosted.controller.versions.DeploymentStatistics;
import com.yahoo.vespa.hosted.controller.versions.VersionStatus;
import com.yahoo.vespa.hosted.controller.versions.VespaVersion;
import org.junit.Test;

import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import static org.junit.Assert.assertEquals;

/**
 * @author mpolden
 */
public class VersionStatusSerializerTest {

    @Test
    public void testSerialization() throws Exception {
        List<VespaVersion> vespaVersions = new ArrayList<>();
        DeploymentStatistics statistics = new DeploymentStatistics(
                Version.fromString("5.0"),
                Arrays.asList(ApplicationId.from("tenant1", "failing1", "default")),
                Arrays.asList(ApplicationId.from("tenant2", "success1", "default"),
                              ApplicationId.from("tenant2", "success2", "default"))
        );
        vespaVersions.add(new VespaVersion(statistics, "dead", Instant.now(), false,
                                           Arrays.asList("cfg1", "cfg2", "cfg3"), VespaVersion.Confidence.normal));
        vespaVersions.add(new VespaVersion(statistics, "cafe", Instant.now(), true,
                                           Arrays.asList("cfg1", "cfg2", "cfg3"), VespaVersion.Confidence.normal));
        VersionStatus status = new VersionStatus(vespaVersions);
        VersionStatusSerializer serializer = new VersionStatusSerializer();
        VersionStatus deserialized = serializer.fromSlime(serializer.toSlime(status));

        assertEquals(status.versions().size(), deserialized.versions().size());
        for (int i = 0; i < status.versions().size(); i++) {
            VespaVersion a = status.versions().get(i);
            VespaVersion b = deserialized.versions().get(i);
            assertEquals(a.releaseCommit(), b.releaseCommit());
            assertEquals(a.releasedAt(), b.releasedAt());
            assertEquals(a.isCurrentSystemVersion(), b.isCurrentSystemVersion());
            assertEquals(a.statistics(), b.statistics());
            assertEquals(a.configServerHostnames(), b.configServerHostnames());
            assertEquals(a.confidence(), b.confidence());
        }

    }

}