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 package com.jcabi.beanstalk.maven.plugin;
31
32 import com.amazonaws.auth.AWSCredentials;
33 import com.amazonaws.auth.BasicAWSCredentials;
34 import com.amazonaws.services.elasticbeanstalk.AWSElasticBeanstalk;
35 import com.amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkClient;
36 import com.amazonaws.services.elasticbeanstalk.model.ConfigurationSettingsDescription;
37 import com.amazonaws.services.elasticbeanstalk.model.DescribeConfigurationSettingsRequest;
38 import com.amazonaws.services.elasticbeanstalk.model.DescribeConfigurationSettingsResult;
39 import com.amazonaws.services.elasticbeanstalk.model.DescribeEnvironmentsRequest;
40 import com.amazonaws.services.elasticbeanstalk.model.DescribeEnvironmentsResult;
41 import com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription;
42 import com.jcabi.log.Logger;
43 import java.util.ArrayList;
44 import java.util.Arrays;
45 import org.apache.maven.plugin.logging.SystemStreamLog;
46 import org.hamcrest.MatcherAssert;
47 import org.hamcrest.Matchers;
48 import org.junit.Assume;
49 import org.junit.BeforeClass;
50 import org.junit.Test;
51 import org.mockito.Mockito;
52 import org.slf4j.impl.StaticLoggerBinder;
53
54
55
56
57
58
59
60 public final class EnvironmentTest {
61
62
63
64
65 private static final String AWS_KEY = System.getProperty("aws.key");
66
67
68
69
70 private static final String AWS_SECRET = System.getProperty("aws.secret");
71
72
73
74
75 @BeforeClass
76 public static void initLog() {
77 StaticLoggerBinder.getSingleton().setMavenLog(new SystemStreamLog());
78 }
79
80
81
82
83
84 @Test
85 public void checksReadinessOfEnvironment() throws Exception {
86 final String eid = "some-env-id";
87 final AWSElasticBeanstalk ebt = Mockito.mock(AWSElasticBeanstalk.class);
88 Mockito.doReturn(
89 new DescribeConfigurationSettingsResult().withConfigurationSettings(
90 new ArrayList<ConfigurationSettingsDescription>(0)
91 )
92 ).when(ebt)
93 .describeConfigurationSettings(
94 Mockito.any(DescribeConfigurationSettingsRequest.class)
95 );
96 Mockito.doReturn(
97 new DescribeEnvironmentsResult().withEnvironments(
98 Arrays.asList(
99 new EnvironmentDescription()
100 .withStatus("Ready")
101 .withHealth("Red")
102 )
103 )
104 ).when(ebt)
105 .describeEnvironments(
106 Mockito.any(DescribeEnvironmentsRequest.class)
107 );
108 final Environment env = new Environment(ebt, eid);
109 MatcherAssert.assertThat(
110 env.green(),
111 Matchers.equalTo(false)
112 );
113 }
114
115
116
117
118
119 @Test
120 public void fetchesTailReportFromLiveEnvironment() throws Exception {
121 Assume.assumeThat(EnvironmentTest.AWS_KEY, Matchers.notNullValue());
122 final AWSCredentials creds = new BasicAWSCredentials(
123 EnvironmentTest.AWS_KEY,
124 EnvironmentTest.AWS_SECRET
125 );
126 final AWSElasticBeanstalk ebt = new AWSElasticBeanstalkClient(creds);
127 final Environment env = new Environment(ebt, "e-2n2mqauqae");
128 Logger.info(this, "tail report:\n%s", env.tail());
129 }
130
131
132
133
134
135 @Test
136 public void collectsEventsFromLiveEnvironment() throws Exception {
137 Assume.assumeThat(EnvironmentTest.AWS_KEY, Matchers.notNullValue());
138 final AWSCredentials creds = new BasicAWSCredentials(
139 EnvironmentTest.AWS_KEY,
140 EnvironmentTest.AWS_SECRET
141 );
142 final AWSElasticBeanstalk ebt = new AWSElasticBeanstalkClient(creds);
143 final Environment env = new Environment(ebt, "e-nxmcbf3pvk");
144 Logger.info(
145 this,
146 "events: %[list]s",
147 Arrays.asList(env.events())
148 );
149 }
150
151 }