/*
* Copyright (c) 2016 NTT DATA Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jp.terasoluna.fw.batch.blogic.vo;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNull.nullValue;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.sql.Timestamp;
import jp.terasoluna.fw.batch.executor.vo.BatchJobData;
import org.dozer.Mapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* BLogicParamConverterImplのテストケース<br>
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/beansDef/BLogicParamConverterImplTest.xml" })
public class BLogicParamConverterImplTest {
@Autowired
protected Mapper beanMapper;
/**
* コンストラクタのテスト01 【異常系】<br>
*
* <pre>
* 事前条件
* ・特になし
* 確認項目
* ・{@code beanMapper}に{@code null}を渡した場合、{@code IllegalArgumentException}をスローすること。
*
* @throws Exception 予期しない例外
*/
@Test
public void testBLogicParamConverterImpl01() throws Exception {
try {
new BLogicParamConverterImpl(null);
fail();
} catch (IllegalArgumentException e) {
assertThat(e.getMessage(), is(
"[EAL025056] [Assertion failed] - BLogicParamConverterImpl requires to set org.dozer.Mapper. please confirm the settings."));
}
}
/**
* コンストラクタのテスト02 【正常系】<br>
*
* <pre>
* 事前条件
* ・beanMapperがAutowiredされていること
* 確認項目
* ・{@code beanMapper}を{@code BLogicParamConverterImpl}のコンストラクタの引数に渡した場合、{@code beanMapper}がフィールドに設定されていること。
*
* @throws Exception 予期しない例外
*/
@Test
public void testBLogicParamConverterImpl02() throws Exception {
BLogicParamConverterImpl blogicParamConverter = new BLogicParamConverterImpl(beanMapper);
assertThat(this.beanMapper, is(blogicParamConverter.beanMapper));
}
/**
* convertBLogicParamのテスト01 【正常系】<br>
*
* <pre>
* 事前条件
* ・beanMapperがAutowiredされていること
* 確認項目
* ・{@code BatchJobData}に設定した各値が{@code BLogicParam}の各プロパティにセットされること。
*
* @throws Exception 予期しない例外
*/
@Test
public void testConvertBLogicParam01() throws Exception {
BatchJobData source = new BatchJobData() {
{
setCurAppStatus("3");
setErrAppStatus("3");
setAddDateTime(new Timestamp(System.currentTimeMillis()));
setUpdDateTime(new Timestamp(System.currentTimeMillis()));
setJobAppCd("B000001");
setJobSequenceId("000000001");
setJobArgNm1("jobArgNm1");
setJobArgNm2("jobArgNm2");
setJobArgNm3("jobArgNm3");
setJobArgNm4("jobArgNm4");
setJobArgNm5("jobArgNm5");
setJobArgNm6("jobArgNm6");
setJobArgNm7("jobArgNm7");
setJobArgNm8("jobArgNm8");
setJobArgNm9("jobArgNm9");
setJobArgNm10("jobArgNm10");
setJobArgNm11("jobArgNm11");
setJobArgNm12("jobArgNm12");
setJobArgNm13("jobArgNm13");
setJobArgNm14("jobArgNm14");
setJobArgNm15("jobArgNm15");
setJobArgNm16("jobArgNm16");
setJobArgNm17("jobArgNm17");
setJobArgNm18("jobArgNm18");
setJobArgNm19("jobArgNm19");
setJobArgNm20("jobArgNm20");
}
};
BLogicParamConverterImpl blogicParamConverter = new BLogicParamConverterImpl(beanMapper);
BLogicParam dist = blogicParamConverter.convertBLogicParam(source);
assertThat(dist.getJobAppCd(), is("B000001"));
assertThat(dist.getJobSequenceId(), is("000000001"));
assertThat(dist.getJobArgNm1(), is("jobArgNm1"));
assertThat(dist.getJobArgNm2(), is("jobArgNm2"));
assertThat(dist.getJobArgNm3(), is("jobArgNm3"));
assertThat(dist.getJobArgNm4(), is("jobArgNm4"));
assertThat(dist.getJobArgNm5(), is("jobArgNm5"));
assertThat(dist.getJobArgNm6(), is("jobArgNm6"));
assertThat(dist.getJobArgNm7(), is("jobArgNm7"));
assertThat(dist.getJobArgNm8(), is("jobArgNm8"));
assertThat(dist.getJobArgNm9(), is("jobArgNm9"));
assertThat(dist.getJobArgNm10(), is("jobArgNm10"));
assertThat(dist.getJobArgNm11(), is("jobArgNm11"));
assertThat(dist.getJobArgNm12(), is("jobArgNm12"));
assertThat(dist.getJobArgNm13(), is("jobArgNm13"));
assertThat(dist.getJobArgNm14(), is("jobArgNm14"));
assertThat(dist.getJobArgNm15(), is("jobArgNm15"));
assertThat(dist.getJobArgNm16(), is("jobArgNm16"));
assertThat(dist.getJobArgNm17(), is("jobArgNm17"));
assertThat(dist.getJobArgNm18(), is("jobArgNm18"));
assertThat(dist.getJobArgNm19(), is("jobArgNm19"));
assertThat(dist.getJobArgNm20(), is("jobArgNm20"));
}
/**
* convertBLogicParamのテスト02 【正常系】<br>
*
* <pre>
* 事前条件
* ・beanMapperがAutowiredされていること
* 確認項目
* ・{@code BatchJobData}のプロパティに{@code null}を渡した場合でも、例外が起きることなく{@code BLogicParam}の各プロパティにセットされること。
* 尚、全てnullの場合、マッピングができているのか不明なため、jobArgNmの番号が奇数のもののみ{@code null}とする。
*
* @throws Exception 予期しない例外
*/
@Test
public void testConvertBLogicParam02() throws Exception {
BatchJobData source = new BatchJobData() {
{
setJobAppCd("B000001");
setJobSequenceId("000000001");
setJobArgNm2("jobArgNm2");
setJobArgNm4("jobArgNm4");
setJobArgNm6("jobArgNm6");
setJobArgNm8("jobArgNm8");
setJobArgNm10("jobArgNm10");
setJobArgNm12("jobArgNm12");
setJobArgNm14("jobArgNm14");
setJobArgNm16("jobArgNm16");
setJobArgNm18("jobArgNm18");
setJobArgNm20("jobArgNm20");
}
};
BLogicParamConverterImpl blogicParamConverter = new BLogicParamConverterImpl(beanMapper);
BLogicParam dist = blogicParamConverter.convertBLogicParam(source);
assertThat(dist.getJobAppCd(), is("B000001"));
assertThat(dist.getJobSequenceId(), is("000000001"));
assertThat(dist.getJobArgNm1(), nullValue());
assertThat(dist.getJobArgNm2(), is("jobArgNm2"));
assertThat(dist.getJobArgNm3(), nullValue());
assertThat(dist.getJobArgNm4(), is("jobArgNm4"));
assertThat(dist.getJobArgNm5(), nullValue());
assertThat(dist.getJobArgNm6(), is("jobArgNm6"));
assertThat(dist.getJobArgNm7(), nullValue());
assertThat(dist.getJobArgNm8(), is("jobArgNm8"));
assertThat(dist.getJobArgNm9(), nullValue());
assertThat(dist.getJobArgNm10(), is("jobArgNm10"));
assertThat(dist.getJobArgNm11(), nullValue());
assertThat(dist.getJobArgNm12(), is("jobArgNm12"));
assertThat(dist.getJobArgNm13(), nullValue());
assertThat(dist.getJobArgNm14(), is("jobArgNm14"));
assertThat(dist.getJobArgNm15(), nullValue());
assertThat(dist.getJobArgNm16(), is("jobArgNm16"));
assertThat(dist.getJobArgNm17(), nullValue());
assertThat(dist.getJobArgNm18(), is("jobArgNm18"));
assertThat(dist.getJobArgNm19(), nullValue());
assertThat(dist.getJobArgNm20(), is("jobArgNm20"));
}
/**
* convertBLogicParamのテスト02 【正常系】<br>
*
* <pre>
* 事前条件
* ・beanMapperがAutowiredされていること
* 確認項目
* ・{@code BatchJobData}のプロパティに{@code null}を渡した場合でも、例外が起きることなく{@code BLogicParam}の各プロパティにセットされること。
* 尚、全てnullの場合、マッピングができているのか不明なため、jobArgNmの番号が偶数のもの、及びjobAppCd、jobSequenceIdのみ{@code null}とする。
*
* @throws Exception 予期しない例外
*/
@Test
public void testConvertBLogicParam03() throws Exception {
BatchJobData source = new BatchJobData() {
{
setJobArgNm1("jobArgNm1");
setJobArgNm3("jobArgNm3");
setJobArgNm5("jobArgNm5");
setJobArgNm7("jobArgNm7");
setJobArgNm9("jobArgNm9");
setJobArgNm11("jobArgNm11");
setJobArgNm13("jobArgNm13");
setJobArgNm15("jobArgNm15");
setJobArgNm17("jobArgNm17");
setJobArgNm19("jobArgNm19");
}
};
BLogicParamConverterImpl blogicParamConverter = new BLogicParamConverterImpl(beanMapper);
BLogicParam dist = blogicParamConverter.convertBLogicParam(source);
assertThat(dist.getJobAppCd(), nullValue());
assertThat(dist.getJobSequenceId(), nullValue());
assertThat(dist.getJobArgNm1(), is("jobArgNm1"));
assertThat(dist.getJobArgNm2(), nullValue());
assertThat(dist.getJobArgNm3(), is("jobArgNm3"));
assertThat(dist.getJobArgNm4(), nullValue());
assertThat(dist.getJobArgNm5(), is("jobArgNm5"));
assertThat(dist.getJobArgNm6(), nullValue());
assertThat(dist.getJobArgNm7(), is("jobArgNm7"));
assertThat(dist.getJobArgNm8(), nullValue());
assertThat(dist.getJobArgNm9(), is("jobArgNm9"));
assertThat(dist.getJobArgNm10(), nullValue());
assertThat(dist.getJobArgNm11(), is("jobArgNm11"));
assertThat(dist.getJobArgNm12(), nullValue());
assertThat(dist.getJobArgNm13(), is("jobArgNm13"));
assertThat(dist.getJobArgNm14(), nullValue());
assertThat(dist.getJobArgNm15(), is("jobArgNm15"));
assertThat(dist.getJobArgNm16(), nullValue());
assertThat(dist.getJobArgNm17(), is("jobArgNm17"));
assertThat(dist.getJobArgNm18(), nullValue());
assertThat(dist.getJobArgNm19(), is("jobArgNm19"));
assertThat(dist.getJobArgNm20(), nullValue());
}
}