I have a class:
package com.taboon.persistence; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.ObjectMapper; import com.sun.xml.internal.bind.v2.TODO; import com.taboon.api.persistence.TaboonRepository; import org.apache.commons.lang3.NotImplementedException; import org.springframework.context.annotation.Configuration; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.io.*; import java.util.*; import java.util.List; @Service(value = "TaboonRepository") @Configuration public class FileSystemRepository<PObject> implements TaboonRepository<PObject> { File file; public FileSystemRepository(File file){ this.file = file; } @Override public Iterable<PObject> findAll(Sort sort) { if (Boolean.TRUE) { throw new NotImplementedException("Not implemented yet"); } //TODO - implement sorting return null; } @Override public Page<PObject> findAll(Pageable pageable) { Pageable pageObject = pageable; Pageable pageableObj = null; for (int i = 0; i < listRepository.size(); i++) { if (listRepository.get(i).equals(pageable)) { pageableObj = pageable; } } return (Page<PObject>) pageableObj; } @Override public <S extends PObject> S save(S s) { List pObj = listRepository; pObj.add(s); ObjectMapper objectMapper = new ObjectMapper(); try { objectMapper.writeValue(file, pObj); } catch (IOException e) { e.printStackTrace(); } List<PObject> pObjectList = findAll(); Object object=null; for(int i=0;i<pObjectList.size();i++){ if(pObjectList.get(i).equals(s)) { object = s; break; } } return (S) object; } @Override public <S extends PObject> Iterable<S> save(Iterable<S> iterable) { List pObjectList = (List) iterable; for(int i=0; i<pObjectList.size(); i++ ){ save((S) pObjectList.get(i)); } pObjectList = findAll(); return pObjectList; } @Override public PObject findOne(Integer integer) { if(!listRepository.isEmpty() && listRepository.size()>integer) { return (PObject) listRepository.get(integer); } else return null; } @Override public boolean exists(Integer integer) { if (listRepository.size()<integer) return false; else return true; } @Override public List<PObject> findAll() { ObjectMapper objectMapper = new ObjectMapper(); List pObjectList = null; try { pObjectList = objectMapper.readValue(file, List.class); } catch (IOException e) { e.printStackTrace(); } if(!pObjectList.isEmpty()) return pObjectList; else return pObjectList = null; } @Override public List<PObject> findAll(Iterable<Integer> iterable) { ObjectMapper objectMapper = new ObjectMapper(); List<Integer> integerList = (List<Integer>) iterable; ArrayList<PObject> returnObjList = new ArrayList<PObject>(integerList.size()); if(listRepository!=null){ for (int i = 0; i < listRepository.size(); i++) { for (int j = 0; j < integerList.size(); j++) { if (i == j) returnObjList.add((PObject) listRepository.get(i)); } } }else return returnObjList = null; if (!returnObjList.isEmpty() && returnObjList.size()==integerList.size()) return returnObjList; else return returnObjList = null; } @Override public long count() { long count = 0; count = listRepository.size(); return count; } @Override public void delete(Integer integer) { ObjectMapper objectMapper = new ObjectMapper(); PObject pObject = (PObject) listRepository.get(integer); listRepository.remove(pObject); deleteAll(); try { objectMapper.writeValue(file, listRepository); } catch (IOException e) { e.printStackTrace(); } } @Override public void delete(PObject pObject) { ObjectMapper objectMapper = new ObjectMapper(); listRepository.remove(pObject); deleteAll(); try { objectMapper.writeValue(file, listRepository); } catch (IOException e) { e.printStackTrace(); } } @Override public void delete(Iterable<? extends PObject> iterable) { ObjectMapper objectMapper = new ObjectMapper(); listRepository.removeAll((Collection<PObject>) iterable); deleteAll(); try { objectMapper.writeValue(file, listRepository); } catch (IOException e) { e.printStackTrace(); } } @Override public void deleteAll() { PrintWriter writer = null; try { writer = new PrintWriter(file); } catch (FileNotFoundException e) { e.printStackTrace(); } writer.print("[]"); writer.close(); } List<? extends PObject> listRepository = findAll(); } and there are tests for it:
package com.taboon.persistence; import com.fasterxml.jackson.databind.ObjectMapper; import com.taboon.api.persistence.PObject; import net.minidev.json.JSONObject; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; @ContextConfiguration @RunWith(SpringJUnit4ClassRunner.class) public class FileSystemRepositoryTest { @Resource FileSystemRepository fileSystemRepository; @Mock Pageable pageable; @Mock PObject pObject; @Mock List pObjectsIterable; @Mock List list; public void inFile(){ File file = new File(".//src//test//objForTests.json"); ObjectMapper objectMapper = new ObjectMapper(); List pObjectList = null; File file1 = new File(".//src//test//PObjects.json"); PrintWriter writer = null; try { pObjectList = objectMapper.readValue(file, List.class); writer = new PrintWriter(file1); writer.print("[]"); writer.close(); objectMapper.writeValue(file1, pObjectList); } catch (IOException e) { e.printStackTrace(); } } @Test public void findAllSort() throws Exception { } @Test public void findAllPage() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); pageable = Mockito.mock(Pageable.class); File file = new File(".//src//test//PObjects.json"); ObjectMapper objectMapper = new ObjectMapper(); try { objectMapper.writeValue(file, pageable); } catch (IOException e) { e.printStackTrace(); } Page<PObject> page = (Page<PObject>) fileSystemRepository.findAll(pageable); Assert.assertNotNull(pageable); } @Test public void findAllList() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); list = Mockito.mock(List.class); list = fileSystemRepository.findAll(); Assert.assertNotNull(list); } @Test public void findAllListInteger() throws Exception { inFile(); List list = fileSystemRepository.findAll(); ArrayList<Integer> listInteger = new ArrayList<Integer>(2) ; listInteger.add(0, 0); listInteger.add(1, 1); List pObjectsIterableInt = fileSystemRepository.findAll(listInteger); Assert.assertNotNull(pObjectsIterableInt); } @Test public void findOne() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); Object pobj = fileSystemRepository.findOne(1); Assert.assertNotNull(pobj); } @Test public void count() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); List list = fileSystemRepository.findAll(); Integer countOfList = list.size(); Integer count = fileSystemRepository.findAll().size(); Assert.assertEquals("Wrong size", countOfList, count); } @Test public void saveObject() throws Exception { inFile(); JSONObject jo = new JSONObject(); jo.put("id","2"); jo.put("type", "String"); jo.put("name", "stringOb2"); jo.put("value", "StringOb2"); Assert.assertNotNull(fileSystemRepository); Object pObjectSave = fileSystemRepository.save(jo); Assert.assertNotNull(pObjectSave); } @Test public void saveCollection() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); pObjectsIterable = Mockito.mock(List.class); Iterable<PObject> pObjectIterableReturn = fileSystemRepository.save(pObjectsIterable); Assert.assertNotNull(pObjectIterableReturn); } @Test public void exists() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); boolean existObject = false; pObjectsIterable = Mockito.mock(List.class); pObjectsIterable = (List) fileSystemRepository.save(pObjectsIterable); existObject = fileSystemRepository.exists(pObjectsIterable.size() - 2); Assert.assertTrue(existObject); } @Test public void deleteInteger() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); List objList = fileSystemRepository.findAll(); Integer count = objList.size(); fileSystemRepository.delete(count - 1); Object obj = fileSystemRepository.findOne(count - 1); Assert.assertNull(obj); } @Test public void deletePObject() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); Object obj = fileSystemRepository.findOne(1); fileSystemRepository.delete(obj); obj = fileSystemRepository.findOne(1); Assert.assertNull(obj); } @Test public void deleteIterable() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); List objList = fileSystemRepository.findAll(); fileSystemRepository.delete(objList); List objListAfter = fileSystemRepository.findAll(objList); Assert.assertNull(objListAfter); } @Test public void deleteAll() throws Exception { inFile(); Assert.assertNotNull(fileSystemRepository); fileSystemRepository.deleteAll(); List objList = fileSystemRepository.findAll(); Assert.assertNull(objList); } @Configuration static class Config { @Bean FileSystemRepository getFileSystemRepository(){ File file = new File(".//src//test//PObjects.json"); return new FileSystemRepository(file); } } } and tests throw an error
java.lang.IllegalStateException: Failed to load ApplicationContext What could be the problem?
@ContextConfiguration(locations = {"/applicationTestContext.xml"}), whereapplicationTestContext.xmlis insrc/test/resources/applicationTestContext.xml- Chubatiy