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
|
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.generic;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.config.model.test.MockRoot;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.generic.service.ServiceCluster;
import org.junit.Test;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
/**
* @author lulf
* @since 5.1
*/
public class GenericServicesModelTest {
@Test
public void test_generic_services_builder() {
GenericServicesBuilder builder = new GenericServicesBuilder();
assertThat(builder.handlesElements().size(), is(1));
assertThat(builder.handlesElements().get(0), is(ConfigModelId.fromName("service")));
}
@Test
public void test_generic_services_model() {
MockRoot root = new MockRoot();
GenericServicesModel model = new GenericServicesModel(ConfigModelContext.create(null, root, "foo"));
assertThat(model.serviceClusters().size(), is(0));
model.addCluster(new ServiceCluster(root, "mycluster", "/bin/foo"));
assertThat(model.serviceClusters().size(), is(1));
assertThat(model.serviceClusters().get(0).getName(), is("mycluster"));
}
@Test
public void test_generic_services_parsing() throws IOException, SAXException {
final String hosts =
"<hosts>" +
"<host name=\"localhost\">" +
" <alias>mockhost</alias>" +
" </host> " +
"</hosts>";
String services = "<services version=\"1.0\">"
+ "<service id=\"me\" name=\"foo\" command=\"/bin/bar\" version=\"1.0\">"
+ "<node hostalias=\"mockhost\" />"
+ "</service>"
+ "</services>";
VespaModel model = new VespaModel(new MockApplicationPackage.Builder().withHosts(hosts).withServices(services).build());
GenericServicesModel gsModel = (GenericServicesModel) model.configModelRepo().get("me");
assertThat(gsModel.serviceClusters().size(), is(1));
assertThat(gsModel.serviceClusters().get(0).getName(), is("foo"));
assertThat(gsModel.serviceClusters().get(0).services().size(), is(1));
}
}
|