Skip to content

Commit d5bea8c

Browse files
AS-3274: Implement YearConfigurationParameterDaoTest.
1 parent e089127 commit d5bea8c

File tree

6 files changed

+157
-3
lines changed

6 files changed

+157
-3
lines changed

farms-api/farms-persistence/src/main/resources/ca/bc/gov/farms/persistence/v1/dao/mybatis/mapper/YearConfigurationParameterMapper.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<select id="fetch" resultMap="YearConfigurationParameterDtoMap">
3434
<include refid="selectColumns"/>
3535
<include refid="fromClause"/>
36-
where ycp.year_configuration_param_id = #{yearConfigurationParamId}
36+
where ycp.year_configuration_param_id = #{yearConfigurationParameterId}
3737
</select>
3838

3939
<select id="fetchAll" resultMap="YearConfigurationParameterDtoMap">
@@ -87,11 +87,11 @@
8787
revision_count = revision_count + 1,
8888
who_updated = #{userId, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN},
8989
when_updated = now()
90-
where year_configuration_param_id = #{dto.yearConfigurationParamId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
90+
where year_configuration_param_id = #{dto.yearConfigurationParameterId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
9191
</update>
9292

9393
<delete id="deleteYearConfigurationParameter">
9494
delete from farms.farm_year_configuration_params
95-
where year_configuration_param_id = #{yearConfigurationParamId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
95+
where year_configuration_param_id = #{yearConfigurationParameterId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
9696
</delete>
9797
</mapper>

farms-api/farms-persistence/src/test/java/ca/bc/gov/farms/api/rest/v1/spring/EndpointsSpringConfigTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public PostgreSQLContainer<?> postgresContainer() {
4242
"farms/tables/farms.farm_municipality_codes.sql",
4343
"farms/tables/farms.farm_structure_group_attributs.sql",
4444
"farms/tables/farms.farm_structure_group_codes.sql",
45+
"farms/tables/farms.farm_year_configuration_params.sql",
4546
"farms/tables/foreign_keys.sql",
4647
"farms/tables/data.sql");
4748
}
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
package ca.bc.gov.farms.persistence.v1.dao;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.assertj.core.api.Assertions.assertThatNoException;
5+
import static org.junit.jupiter.api.Assertions.fail;
6+
7+
import java.util.List;
8+
9+
import org.junit.jupiter.api.MethodOrderer;
10+
import org.junit.jupiter.api.Order;
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.TestMethodOrder;
13+
import org.junit.jupiter.api.extension.ExtendWith;
14+
import org.springframework.beans.factory.annotation.Autowired;
15+
import org.springframework.context.annotation.ComponentScan;
16+
import org.springframework.test.context.ContextConfiguration;
17+
import org.springframework.test.context.junit.jupiter.SpringExtension;
18+
19+
import ca.bc.gov.brmb.common.persistence.dao.DaoException;
20+
import ca.bc.gov.farms.api.rest.v1.spring.EndpointsSpringConfigTest;
21+
import ca.bc.gov.farms.persistence.v1.dto.YearConfigurationParameterDto;
22+
import ca.bc.gov.farms.persistence.v1.spring.PersistenceSpringConfig;
23+
24+
@ExtendWith(SpringExtension.class)
25+
@ComponentScan(basePackages = "ca.bc.gov.farms")
26+
@ContextConfiguration(classes = { EndpointsSpringConfigTest.class, PersistenceSpringConfig.class })
27+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
28+
public class YearConfigurationParameterDaoTest {
29+
30+
@Autowired
31+
private YearConfigurationParameterDao yearConfigurationParameterDao;
32+
33+
private static Long yearConfigurationParameterId;
34+
35+
@Test
36+
@Order(1)
37+
public void testInsert() {
38+
YearConfigurationParameterDto dto = new YearConfigurationParameterDto();
39+
dto.setProgramYear(2023);
40+
dto.setParameterName("Payment Limitation - Percentage of Total Margin Decline");
41+
dto.setParameterValue("70");
42+
dto.setConfigParamTypeCode("DECIMAL");
43+
44+
YearConfigurationParameterDto result = null;
45+
try {
46+
yearConfigurationParameterDao.insert(dto, "testUser");
47+
yearConfigurationParameterId = dto.getYearConfigurationParameterId();
48+
result = yearConfigurationParameterDao.fetch(yearConfigurationParameterId);
49+
} catch (DaoException e) {
50+
fail(e.getMessage());
51+
return;
52+
}
53+
54+
assertThat(result.getProgramYear()).isEqualTo(2023);
55+
assertThat(result.getParameterName()).isEqualTo("Payment Limitation - Percentage of Total Margin Decline");
56+
assertThat(result.getParameterValue()).isEqualTo("70");
57+
assertThat(result.getConfigParamTypeCode()).isEqualTo("DECIMAL");
58+
}
59+
60+
@Test
61+
@Order(2)
62+
public void testFetchAll() {
63+
List<YearConfigurationParameterDto> dtos = null;
64+
try {
65+
dtos = yearConfigurationParameterDao.fetchAll();
66+
} catch (DaoException e) {
67+
fail(e.getMessage());
68+
return;
69+
}
70+
assertThat(dtos).isNotNull();
71+
assertThat(dtos).isNotEmpty();
72+
assertThat(dtos.size()).isEqualTo(1);
73+
74+
YearConfigurationParameterDto fetchedDto = dtos.get(0);
75+
assertThat(fetchedDto.getProgramYear()).isEqualTo(2023);
76+
assertThat(fetchedDto.getParameterName()).isEqualTo("Payment Limitation - Percentage of Total Margin Decline");
77+
assertThat(fetchedDto.getParameterValue()).isEqualTo("70");
78+
assertThat(fetchedDto.getConfigParamTypeCode()).isEqualTo("DECIMAL");
79+
}
80+
81+
@Test
82+
@Order(3)
83+
public void testUpdate() {
84+
YearConfigurationParameterDto dto = null;
85+
try {
86+
dto = yearConfigurationParameterDao.fetch(yearConfigurationParameterId);
87+
} catch (DaoException e) {
88+
fail(e.getMessage());
89+
return;
90+
}
91+
assertThat(dto).isNotNull();
92+
93+
dto.setParameterValue("700");
94+
95+
YearConfigurationParameterDto result = null;
96+
try {
97+
yearConfigurationParameterDao.update(dto, "testUser");
98+
result = yearConfigurationParameterDao.fetch(yearConfigurationParameterId);
99+
} catch (DaoException e) {
100+
fail(e.getMessage());
101+
return;
102+
}
103+
104+
assertThat(result.getProgramYear()).isEqualTo(2023);
105+
assertThat(result.getParameterName()).isEqualTo("Payment Limitation - Percentage of Total Margin Decline");
106+
assertThat(result.getParameterValue()).isEqualTo("700");
107+
assertThat(result.getConfigParamTypeCode()).isEqualTo("DECIMAL");
108+
}
109+
110+
@Test
111+
@Order(4)
112+
public void testDelete() {
113+
assertThatNoException().isThrownBy(() -> {
114+
yearConfigurationParameterDao.delete(yearConfigurationParameterId);
115+
});
116+
}
117+
}

farms-api/farms-persistence/src/test/resources/farms/sequences.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ CREATE SEQUENCE farms.farm_iia_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 3961
77
CREATE SEQUENCE farms.farm_iid_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 55361 CACHE 20;
88
CREATE SEQUENCE farms.farm_li_seq INCREMENT 1 MINVALUE 0 NO MAXVALUE START 39909 CACHE 20;
99
CREATE SEQUENCE farms.farm_sga_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 21 CACHE 20;
10+
CREATE SEQUENCE farms.farm_ycp_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 241 CACHE 20;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
CREATE TABLE farms.farm_year_configuration_params (
2+
year_configuration_param_id bigint NOT NULL,
3+
program_year smallint NOT NULL,
4+
parameter_name varchar(200) NOT NULL,
5+
parameter_value varchar(4000) NOT NULL,
6+
config_param_type_code varchar(10) NOT NULL,
7+
revision_count integer NOT NULL DEFAULT 1,
8+
who_created varchar(30) NOT NULL,
9+
when_created timestamp(0) NOT NULL DEFAULT statement_timestamp(),
10+
who_updated varchar(30),
11+
when_updated timestamp(0) DEFAULT statement_timestamp()
12+
) ;
13+
COMMENT ON TABLE farms.farm_year_configuration_params IS E'YEAR CONFIGURATION PARAM contains parameters that change the behaviour of the FARM application.';
14+
COMMENT ON COLUMN farms.farm_year_configuration_params.config_param_type_code IS E'CONFIG PARAM TYPE CODE is a unique code for the object CONFIG PARAM TYPE CODE. Examples of codes and descriptions are CURRENCY - Currency, PERCENT - Percent, INTEGER - Integer, STRING - String.';
15+
COMMENT ON COLUMN farms.farm_year_configuration_params.parameter_name IS E'PARAMETER NAME is the name of the configuration parameter.';
16+
COMMENT ON COLUMN farms.farm_year_configuration_params.parameter_value IS E'PARAMETER VALUE is the value of the configuration parameter.';
17+
COMMENT ON COLUMN farms.farm_year_configuration_params.program_year IS E'PROGRAM YEAR is the year that this parameter configures.';
18+
COMMENT ON COLUMN farms.farm_year_configuration_params.revision_count IS E'REVISION COUNT is a counter identifying the number of times this record as been modified. Used in the web page access to determine if the record as been modified since the data was first retrieved.';
19+
COMMENT ON COLUMN farms.farm_year_configuration_params.when_created IS E'WHEN CREATED indicates when the physical record was created in the database.';
20+
COMMENT ON COLUMN farms.farm_year_configuration_params.when_updated IS E'WHEN UPDATED indicates when the physical record was updated in the database.';
21+
COMMENT ON COLUMN farms.farm_year_configuration_params.who_created IS E'WHO CREATED indicates the user that created the physical record in the database.';
22+
COMMENT ON COLUMN farms.farm_year_configuration_params.who_updated IS E'WHO UPDATED indicates the user that updated the physical record in the database.';
23+
COMMENT ON COLUMN farms.farm_year_configuration_params.year_configuration_param_id IS E'YEAR CONFIGURATION PARAM ID is a surrogate unique identifier for YEAR CONFIGURATION PARAM.';
24+
CREATE INDEX farm_ycp_farm_cptc_fk_i ON farms.farm_year_configuration_params (config_param_type_code);
25+
ALTER TABLE farms.farm_year_configuration_params ADD CONSTRAINT farm_ycp_uk UNIQUE (program_year,parameter_name);
26+
ALTER TABLE farms.farm_year_configuration_params ADD CONSTRAINT farm_ycp_pk PRIMARY KEY (year_configuration_param_id);
27+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN year_configuration_param_id SET NOT NULL;
28+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN program_year SET NOT NULL;
29+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN parameter_name SET NOT NULL;
30+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN parameter_value SET NOT NULL;
31+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN config_param_type_code SET NOT NULL;
32+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN revision_count SET NOT NULL;
33+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN who_created SET NOT NULL;
34+
ALTER TABLE farms.farm_year_configuration_params ALTER COLUMN when_created SET NOT NULL;

farms-api/farms-persistence/src/test/resources/farms/tables/foreign_keys.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ ALTER TABLE farms.farm_line_items ADD CONSTRAINT farm_li_farm_fvtc_fk FOREIGN KE
3535
ALTER TABLE farms.farm_structure_group_attributs ADD CONSTRAINT farm_sga_farm_iic_fk FOREIGN KEY (structure_group_code) REFERENCES farms.farm_structure_group_codes(structure_group_code) ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
3636

3737
ALTER TABLE farms.farm_structure_group_attributs ADD CONSTRAINT farm_sga_farm_riic_fk FOREIGN KEY (rollup_structure_group_code) REFERENCES farms.farm_structure_group_codes(structure_group_code) ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;
38+
ALTER TABLE farms.farm_year_configuration_params ADD CONSTRAINT farm_ycp_farm_cptc_fk FOREIGN KEY (config_param_type_code) REFERENCES farms.farm_config_param_type_codes(config_param_type_code) ON DELETE NO ACTION DEFERRABLE INITIALLY IMMEDIATE;

0 commit comments

Comments
 (0)