Advertisement
Guest User

Untitled

a guest
Jun 27th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.48 KB | None | 0 0
  1. package oknok.validacao.services;
  2.  
  3. import com.mongodb.BasicDBObject;
  4. import oknok.utils.Mapper;
  5. import oknok.utils.exceptions.InternalServerErrorException;
  6. import oknok.utils.exceptions.NotFoundException;
  7. import oknok.validacao.daos.*;
  8. import oknok.validacao.entities.Match;
  9. import oknok.validacao.entities.Validacao;
  10. import oknok.validacao.entities.ValidacaoResultado;
  11. import oknok.validacao.readers.planilhas.AtributoReader;
  12. import oknok.validacao.readers.planilhas.PlanilhaReader;
  13. import oknok.validacao.readers.validator.AtributoValidator;
  14. import org.hamcrest.Matchers;
  15. import org.junit.Assert;
  16. import org.junit.Before;
  17. import org.junit.Ignore;
  18. import org.junit.Test;
  19. import org.junit.runner.RunWith;
  20. import org.mockito.Mockito;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.context.ApplicationContext;
  23. import org.springframework.context.annotation.Bean;
  24. import org.springframework.context.annotation.Configuration;
  25. import org.springframework.test.context.ContextConfiguration;
  26. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  27. import scala.Enumeration;
  28.  
  29. import java.util.ArrayList;
  30. import java.util.Arrays;
  31. import java.util.Date;
  32. import java.util.List;
  33.  
  34. import static org.assertj.core.api.Assertions.assertThat;
  35. import static org.hamcrest.CoreMatchers.equalTo;
  36. import static org.hamcrest.Matchers.hasProperty;
  37. import static org.mockito.Matchers.any;
  38. import static org.mockito.Matchers.argThat;
  39. import static org.mockito.Mockito.*;
  40.  
  41. @RunWith(SpringJUnit4ClassRunner.class)
  42. @ContextConfiguration(classes = ValidacaoServiceTest.ReaderConfiguration.class)
  43. public class ValidacaoServiceTest {
  44. @Autowired
  45. ValidacaoService validacaoService;
  46.  
  47. @Autowired
  48. AtributoValidator atributoValidator;
  49.  
  50. @Autowired
  51. ValidacaoDAO validacaoDAO;
  52.  
  53. @Autowired
  54. UploadDAO uploadDAO;
  55.  
  56. @Autowired
  57. MatchDAO matchDAO;
  58.  
  59. @Autowired
  60. AtributoDAO atributoDAO;
  61.  
  62. @Autowired
  63. ValidacaoResultadoDAO validacaoResultadoDAO;
  64.  
  65. @Autowired
  66. ApplicationContext applicationContext;
  67.  
  68. @Autowired
  69. PlanilhaReader planilhaReader;
  70.  
  71. @Autowired
  72. Mapper mapper;
  73.  
  74. @Autowired
  75. AtributoReader atributoReader;
  76.  
  77. private static final ArrayList<String> SWF_FIELDS_FOR_VALIDATION = new ArrayList<String>(Arrays.asList("peca_clicktag", "peca_flash"
  78. , "peca_tempo", "peca_action-script", "peca_peso", "peca_framerate", "peca_largura", "peca_altura"));
  79.  
  80.  
  81. @Configuration
  82. static class ReaderConfiguration {
  83. @Bean
  84. public ValidacaoService getValidacaoService() {
  85. return new ValidacaoService();
  86. }
  87.  
  88. @Bean
  89. public Mapper getMapper() {
  90. Mapper mock = Mockito.mock(Mapper.class);
  91. return mock;
  92. }
  93.  
  94. @Bean
  95. public AtributoReader getAtributoReader() {
  96. return new AtributoReader();
  97. }
  98.  
  99. @Bean
  100. public PlanilhaReader getPlanilhaReader() {
  101. return new PlanilhaReader();
  102. }
  103.  
  104. @Bean
  105. public MatchDAO getMatchDAO() {
  106. MatchDAO mock = Mockito.mock(MatchDAO.class);
  107. return mock;
  108. }
  109.  
  110. @Bean
  111. public AtributoDAO getAtributoDAO() {
  112. AtributoDAO mock = Mockito.mock(AtributoDAO.class);
  113. return mock;
  114. }
  115.  
  116. @Bean
  117. ValidacaoDAO getValidacaoDAO(){
  118. Validacao validacao = new Validacao().setId("TESTE").setEmail("ana@sofist.com").setDataCriacao("12/12/08").setDataAtualizacao("12/12/15").setInstancia("T");
  119. Validacao validacao2 = new Validacao().setId("TESTE02").setEmail("ana02@sofist.com").setDataCriacao("12/12/22").setDataAtualizacao("12/12/22").setInstancia("T");
  120. Validacao validacao3 = new Validacao().setId("TESTE03").setEmail("ana03@sofist.com").setDataCriacao("12/12/33").setDataAtualizacao("12/12/33").setInstancia("T");
  121. ValidacaoDAO mock = Mockito.mock(ValidacaoDAO.class);
  122. List<Validacao> list = new ArrayList<Validacao>();
  123. list.add(validacao);
  124. list.add(validacao2);
  125. list.add(validacao3);
  126. List<Validacao> emptyList = new ArrayList<Validacao>();
  127. //Validacao mockSession=Mockito.spy(TestSupport.createSession(sessionID));
  128. when(mock.findById("id")).thenReturn(new Validacao().setId("123"));
  129. when(mock.findById("validacaoNotFound")).thenReturn(null);
  130. when(mock.save(argThat(hasProperty("id",equalTo("TESTE"))))).thenReturn(validacao);
  131. when(mock.save(argThat(hasProperty("id",equalTo("0000"))))).thenReturn(null);
  132. when(mock.findAllByInstance("T")).thenReturn(list);
  133. when(mock.findAllByInstance("Y")).thenReturn(emptyList);
  134. doNothing().when(mock).remove(any());
  135. when(mock.update(argThat(hasProperty("id",equalTo("TESTE"))))).thenReturn(validacao);
  136. when(mock.update(argThat(hasProperty("id",equalTo("0000"))))).thenReturn(null);
  137. return mock;
  138. }
  139.  
  140. @Bean
  141. public UploadDAO getUploadDAO() {
  142. UploadDAO mock = Mockito.mock(UploadDAO.class);
  143. return mock;
  144. }
  145.  
  146. @Bean
  147. public ValidacaoResultadoDAO getValidacaoResultadoDAO() {
  148. ValidacaoResultadoDAO mock = Mockito.mock(ValidacaoResultadoDAO.class);
  149. return mock;
  150. }
  151.  
  152. @Bean
  153. public AtributoValidator getAtributoValidator() {
  154. return new AtributoValidator();
  155. }
  156. }
  157.  
  158.  
  159.  
  160.  
  161.  
  162. @Test
  163. public void validacaoOk(){
  164.  
  165. ValidacaoResultado resultadoFinalActual = new ValidacaoResultado();
  166.  
  167. List<BasicDBObject> specs = new ArrayList<>();
  168. BasicDBObject spec = new BasicDBObject();
  169. spec.put("spec_extensao" , "swf (gif/jpg)");
  170. spec.put("peca_clicktag" , "on (release) {\nfscommand (\"URL1\");\n}");
  171. spec.put("peca_flash" , "8 até 10");
  172. spec.put("peca_tempo" , "até 30s");
  173. spec.put("peca_action-script" , "2/3");
  174. spec.put("peca_peso" , "20kb");
  175. spec.put("peca_framerate" , "24fps ou superior");
  176. spec.put("peca_largura" , "300px");
  177. spec.put("peca_altura" , "250px");
  178.  
  179. specs.add(spec);
  180.  
  181. BasicDBObject atributos = new BasicDBObject();
  182. atributos.put("extensao" , "swf (gif/jpg)");
  183. atributos.put("clicktag" , "on (release) {\nfscommand (\"URL1\");\n}");
  184. atributos.put("flash" , "9");
  185. atributos.put("tempo" , "23");
  186. atributos.put("action-script", "2");
  187. atributos.put("peso", "20");
  188. atributos.put("framerate", "24");
  189. atributos.put("largura" , "300");
  190. atributos.put("altura" , "250");
  191.  
  192.  
  193. validacaoService.mountResult(resultadoFinalActual, spec, atributos, SWF_FIELDS_FOR_VALIDATION, "OK_NOK");
  194.  
  195. ValidacaoResultado resultadoFinalExpected = new ValidacaoResultado();
  196.  
  197. BasicDBObject result = new BasicDBObject();
  198. BasicDBObject map = new BasicDBObject();
  199. map.append("spec", "on (release) {\nfscommand (\"URL1\");\n}");
  200. map.append("arquivo", "on (release) {\nfscommand (\"URL1\");\n}");
  201. map.append("status", "OK");
  202. result.put("peca_clicktag", map);
  203. map = new BasicDBObject();
  204. map.append("spec", "8 até 10");
  205. map.append("arquivo", "9");
  206. map.append("status", "OK");
  207. result.put("peca_flash", map);
  208. map = new BasicDBObject();
  209. map.append("spec", "até 30s");
  210. map.append("arquivo", "23");
  211. map.append("status", "OK");
  212. result.put("peca_tempo", map);
  213. map = new BasicDBObject();
  214. map.append("spec", "2/3");
  215. map.append("arquivo", "2");
  216. map.append("status", "OK");
  217. result.put("peca_action-script", map);
  218. map = new BasicDBObject();
  219. map.append("spec", "20kb");
  220. map.append("arquivo", "20");
  221. map.append("status", "OK");
  222. result.put("peca_peso", map);
  223. map = new BasicDBObject();
  224. map.append("spec", "24fps ou superior");
  225. map.append("arquivo", "24");
  226. map.append("status", "OK");
  227. result.put("peca_framerate", map);
  228. map = new BasicDBObject();
  229. map.append("spec", "300px");
  230. map.append("arquivo", "300");
  231. map.append("status", "OK");
  232. result.put("peca_largura", map);
  233. map = new BasicDBObject();
  234. map.append("spec", "250px");
  235. map.append("arquivo", "250");
  236. map.append("status", "OK");
  237. result.put("peca_altura", map);
  238.  
  239. resultadoFinalExpected.setResultado(result);
  240.  
  241. Assert.assertEquals(resultadoFinalExpected.getResultado(), resultadoFinalActual.getResultado());
  242. }
  243.  
  244. @Test
  245. public void validacaoNok(){
  246.  
  247. ValidacaoResultado resultadoFinalActual = new ValidacaoResultado();
  248.  
  249. List<BasicDBObject> specs = new ArrayList<>();
  250. BasicDBObject spec = new BasicDBObject();
  251. spec.put("spec_extensao" , "swf (gif/jpg)");
  252. spec.put("peca_clicktag" , "on (release) {\nfscommand (\"URL1\");\n}");
  253. spec.put("peca_flash" , "8 até 10");
  254. spec.put("peca_tempo" , "até 20s");
  255. spec.put("peca_action-script" , "3");
  256. spec.put("peca_peso" , "10kb");
  257. spec.put("peca_framerate" , "24fps ou superior");
  258. spec.put("peca_largura" , "300px");
  259. spec.put("peca_altura" , "250px");
  260.  
  261. specs.add(spec);
  262.  
  263. BasicDBObject atributos = new BasicDBObject();
  264. atributos.put("extensao" , "swf (gif/jpg)");
  265. atributos.put("clicktag" , "on (release) {\nfscommand (\"URL1\");\n}");
  266. atributos.put("flash" , "9");
  267. atributos.put("tempo" , "23");
  268. atributos.put("action-script", "2");
  269. atributos.put("peso", "20");
  270. atributos.put("framerate", "24");
  271. atributos.put("largura" , "300");
  272. atributos.put("altura" , "250");
  273.  
  274.  
  275. validacaoService.mountResult(resultadoFinalActual, spec, atributos, SWF_FIELDS_FOR_VALIDATION, "OK_NOK");
  276.  
  277. ValidacaoResultado resultadoFinalExpected = new ValidacaoResultado();
  278.  
  279. BasicDBObject result = new BasicDBObject();
  280. BasicDBObject map = new BasicDBObject();
  281. map.append("spec", "on (release) {\nfscommand (\"URL1\");\n}");
  282. map.append("arquivo", "on (release) {\nfscommand (\"URL1\");\n}");
  283. map.append("status", "OK");
  284. result.put("peca_clicktag", map);
  285. map = new BasicDBObject();
  286. map.append("spec", "8 até 10");
  287. map.append("arquivo", "9");
  288. map.append("status", "OK");
  289. result.put("peca_flash", map);
  290. map = new BasicDBObject();
  291. map.append("spec", "até 20s");
  292. map.append("arquivo", "23");
  293. map.append("status", "NOK");
  294. result.put("peca_tempo", map);
  295. map = new BasicDBObject();
  296. map.append("spec", "3");
  297. map.append("arquivo", "2");
  298. map.append("status", "NOK");
  299. result.put("peca_action-script", map);
  300. map = new BasicDBObject();
  301. map.append("spec", "10kb");
  302. map.append("arquivo", "20");
  303. map.append("status", "NOK");
  304. result.put("peca_peso", map);
  305. map = new BasicDBObject();
  306. map.append("spec", "24fps ou superior");
  307. map.append("arquivo", "24");
  308. map.append("status", "OK");
  309. result.put("peca_framerate", map);
  310. map = new BasicDBObject();
  311. map.append("spec", "300px");
  312. map.append("arquivo", "300");
  313. map.append("status", "OK");
  314. result.put("peca_largura", map);
  315. map = new BasicDBObject();
  316. map.append("spec", "250px");
  317. map.append("arquivo", "250");
  318. map.append("status", "OK");
  319. result.put("peca_altura", map);
  320.  
  321. resultadoFinalExpected.setResultado(result);
  322.  
  323. Assert.assertEquals(resultadoFinalExpected.getResultado(), resultadoFinalActual.getResultado());
  324. }
  325.  
  326. @Test
  327. public void testRetrieve_withValidId_shouldReturnSuccess() {
  328. Validacao validacao = validacaoService.retrieve("id");
  329. String expected = "123";
  330. assertThat(validacao.getId()).isEqualTo(expected);
  331. }
  332.  
  333. @Test(expected = NotFoundException.class)
  334. public void testRetrieve_withInvalidId_shouldThrowException() {
  335. Validacao validacao = validacaoService.retrieve("validacaoNotFound");
  336. }
  337.  
  338. @Test
  339. public void testCreate_withValidValidacao_shouldReturnValidacao() {
  340.  
  341. Validacao validacao = new Validacao();
  342. validacao.setId("TESTE");
  343. validacao.setEmail("ana@sofist.com");
  344. validacao.setDataCriacao("12/12/08");
  345. validacao.setDataAtualizacao("12/12/15");
  346. validacao.setInstancia("T");
  347.  
  348. Validacao retorno = validacaoService.create(validacao);
  349. assertThat(retorno).isEqualToComparingFieldByField(validacao); //assert que diz em QUAL campo esta o problema
  350.  
  351. }
  352.  
  353. @Test (expected = InternalServerErrorException.class)
  354. public void testCreate_withInvalidValidacao_shouldThrowException() {
  355.  
  356. Validacao validacao = new Validacao();
  357. validacao.setId("0000");
  358. validacaoService.create(validacao);
  359.  
  360. }
  361.  
  362. @Test
  363. public void testRetrieveAll_withValidInstance_shouldReturnList() {
  364.  
  365. List<Validacao> retorno = validacaoService.retrieveAll("T");
  366. assertThat(retorno.size()).isEqualTo(3);
  367. }
  368.  
  369. @Test
  370. public void testRetrieveAll_withInvalidInstance_shouldReturnEmptyList() {
  371. assertThat(validacaoService.retrieveAll("Y")).isEmpty();
  372. }
  373.  
  374. @Test(expected = NotFoundException.class)
  375. public void testRemove_withInvalidId_shouldThrowException() {
  376. validacaoService.remove("validacaoNotFound");
  377. }
  378.  
  379. @Test
  380. public void testRemove_withValidId_shouldCallRemove() {
  381. validacaoService.remove("id");
  382. verify(validacaoDAO,times(1)).remove("id");
  383. }
  384.  
  385. @Test
  386. public void testUpdate_withValidValidacao_shouldReturnUpdatedValidacao() {
  387.  
  388. Date data = new Date();
  389. Validacao validacao = new Validacao();
  390. validacao.setId("TESTE");
  391. validacao.setEmail("ana@sofist.com");
  392. validacao.setDataCriacao("12/12/08");
  393. validacao.setDataAtualizacao("12/12/15");
  394. validacao.setInstancia("T");
  395.  
  396. Validacao retorno = validacaoService.update(validacao);
  397. Date dataNova = new Date();
  398. assertThat(new Date(retorno.getDataAtualizacao())).isBefore(dataNova); //esta dando erro
  399. assertThat(retorno).isEqualToIgnoringGivenFields(validacao, "dataAtualizacao");
  400. assertThat(new Date(retorno.getDataAtualizacao())).isAfter(data);
  401. verify(validacaoDAO, times(1)).update(validacao);
  402.  
  403. }
  404.  
  405. @Test (expected = NotFoundException.class)
  406. public void testUpdate_withInvalidValidacao_shouldThrowException() {
  407. validacaoService.update(new Validacao().setId("0000"));
  408. }
  409. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement