]> source.dussan.org Git - sonarqube.git/blob
e9039d2827be3b39e1edf89b3120db59d7ff6495
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2016 SonarSource SA
4  * mailto:contact AT sonarsource DOT com
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20 package org.sonar.server.computation.task.projectanalysis.period;
21
22 import org.junit.Rule;
23 import org.junit.Test;
24 import org.junit.rules.ExpectedException;
25
26 import static org.assertj.core.api.Assertions.assertThat;
27
28 public class PeriodsHolderImplTest {
29
30   @Rule
31   public ExpectedException thrown = ExpectedException.none();
32
33   private PeriodsHolderImpl underTest = new PeriodsHolderImpl();
34
35   @Test
36   public void get_period() {
37     Period period = createPeriod();
38     underTest.setPeriod(period);
39
40     assertThat(underTest.getPeriod()).isEqualTo(period);
41   }
42
43   @Test
44   public void get_period_throws_illegal_state_exception_if_not_initialized() {
45     thrown.expect(IllegalStateException.class);
46     thrown.expectMessage("Period have not been initialized yet");
47
48     new PeriodsHolderImpl().getPeriod();
49   }
50
51   @Test
52   public void setPeriod_throws_ISE_if_already_initialized() {
53     thrown.expect(IllegalStateException.class);
54     thrown.expectMessage("Period have already been initialized");
55
56     underTest.setPeriod(createPeriod());
57     underTest.setPeriod(createPeriod());
58   }
59
60   @Test
61   public void hasPeriod_returns_false_if_holder_is_empty() {
62     underTest.setPeriod(null);
63     assertThat(underTest.hasPeriod()).isFalse();
64   }
65
66   @Test
67   public void hasPeriod_returns_true_only_if_period_exists_in_holder() {
68     underTest.setPeriod(createPeriod());
69     assertThat(underTest.hasPeriod()).isTrue();
70   }
71
72   @Test
73   public void hasPeriod_throws_ISE_if_not_initialized() {
74     thrown.expect(IllegalStateException.class);
75     thrown.expectMessage("Period have not been initialized yet");
76
77     underTest.hasPeriod();
78   }
79
80   private static Period createPeriod() {
81     return new Period(1, 1 + "mode", null, 1000L, "U1");
82   }
83 }