Skip to content

Commit

Permalink
Prepare tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tspoke committed Feb 28, 2017
1 parent df7a229 commit 36c6e1c
Show file tree
Hide file tree
Showing 6 changed files with 278 additions and 43 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package com.playmoweb.store2store.mock;

import com.playmoweb.store2store.dao.api.IDao;
import com.playmoweb.store2store.utils.Filter;
import com.playmoweb.store2store.utils.SortingMode;

import java.util.ArrayList;
import java.util.List;

import rx.Observable;

/**
* Memory dao for tests purposes
*
* @warning This class is not tested !
*
* @author Thibaud Giovannetti
* @by Playmoweb
* @date 28/02/2017
*/
public class MemoryDao implements IDao<TestModel> {
private List<TestModel> models = new ArrayList<>();

@Override
public Observable<List<TestModel>> getAll(Filter filter, SortingMode sortingMode) {
return Observable.just(models);
}

@Override
public Observable<TestModel> getOne(Filter filter, SortingMode sortingMode) {
return Observable.just(models.get(0));
}

@Override
public Observable<TestModel> getById(String id) {
int integerId = Integer.valueOf(id);
TestModel t = null;
for(TestModel tm : models) {
if(tm.getId() == integerId) {
t = tm;
break;
}
}
return Observable.just(t);
}

@Override
public Observable<TestModel> insertOrUpdate(TestModel object) {
return Observable.just(insertObjectOrUpdate(object));
}

@Override
public Observable<List<TestModel>> insertOrUpdate(List<TestModel> items) {
List<TestModel> output = new ArrayList<>(items.size());

for(int i = 0; i < items.size(); i++) {
output.set(i, insertObjectOrUpdate(items.get(i)));
}
return Observable.just(output);
}

@Override
public Observable<Void> delete(List<TestModel> items) {
for(TestModel tm : models) {
removeItemIfExists(tm);
}
return Observable.just(null);
}

@Override
public Observable<Void> delete(TestModel object) {
removeItemIfExists(object);
return Observable.just(null);
}

@Override
public Observable<Void> deleteAll() {
models.clear();
return Observable.just(null);
}


// PRIVATES METHODS

private List<TestModel> removeItemIfExists(TestModel object) {
List<TestModel> output = new ArrayList<>();
for(TestModel tm : models) {
if(tm.getId() != object.getId()) {
output.add(tm);
}
}
return output;
}

private TestModel insertObjectOrUpdate(TestModel object) {
TestModel t = null;
int i = 0;
for(TestModel tm : models) {
if(tm.getId() == object.getId()) {
t = tm;
models.set(i, object);
break;
}
i++;
}

if(t == null) {
models.add(object);
}
return object;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.playmoweb.store2store.mock;

import com.playmoweb.store2store.service.api.AbstractService;
import com.playmoweb.store2store.utils.Filter;
import com.playmoweb.store2store.utils.SortingMode;

import java.util.List;

import rx.Observable;

/**
* Memory service for tests purposes
* @author Thibaud Giovannetti
* @by Playmoweb
* @date 28/02/2017
*/
public class MemoryService extends AbstractService<TestModel> {
// to simplify we use a second memory DAO to simulate another storage :)
private MemoryDao myCustomAPI = new MemoryDao();

/**
* Public constructor
*
* @param clazz
*/
public MemoryService(Class<TestModel> clazz) {
super(clazz, new MemoryDao());
}

@Override
protected Observable<List<TestModel>> getAll(Filter filter, SortingMode sortingMode) {
return myCustomAPI.getAll(filter, sortingMode);
}

@Override
protected Observable<TestModel> getOne(Filter filter, SortingMode sortingMode) {
return myCustomAPI.getOne(filter, sortingMode);
}

@Override
protected Observable<TestModel> getById(String id) {
return myCustomAPI.getById(id);
}

@Override
protected Observable<TestModel> insert(TestModel object) {
return myCustomAPI.insertOrUpdate(object);
}

@Override
protected Observable<List<TestModel>> insert(List<TestModel> items) {
return myCustomAPI.insertOrUpdate(items);
}

@Override
protected Observable<TestModel> update(TestModel object) {
return myCustomAPI.insertOrUpdate(object);
}

@Override
protected Observable<List<TestModel>> update(List<TestModel> items) {
return myCustomAPI.insertOrUpdate(items);
}

@Override
protected Observable<Void> delete(List<TestModel> items) {
return myCustomAPI.delete(items);
}

@Override
protected Observable<Void> delete(TestModel object) {
return myCustomAPI.delete(object);
}

@Override
protected Observable<Void> deleteAll() {
return myCustomAPI.deleteAll();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.playmoweb.store2store.mock;

/**
* Bean for tests purposes
* @author Thibaud Giovannetti
* @by Playmoweb
* @date 28/02/2017
*/
public class TestModel {
private int id;
private String name;
private boolean available;

public TestModel(int id) {
this.id = id;
}

public TestModel(int id, String name) {
this.id = id;
this.name = name;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isAvailable() {
return available;
}

public void setAvailable(boolean available) {
this.available = available;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.playmoweb.store2store.service;

import android.support.test.runner.AndroidJUnit4;

import com.playmoweb.store2store.mock.MemoryService;
import com.playmoweb.store2store.mock.TestModel;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import rx.subscriptions.CompositeSubscription;

/**
* Test all get operations
* @author Thibaud Giovannetti
* @by Playmoweb
* @date 28/02/2017
*/
@RunWith(AndroidJUnit4.class)
public class AbstractServiceGetUnitTest {

private final CompositeSubscription subscriptions = new CompositeSubscription();
private MemoryService service = new MemoryService(TestModel.class);

@Before
public void before() {

}

@After
public void after() {
subscriptions.clear();
}

@Test
public void getOne() throws Exception {

}
}

This file was deleted.

0 comments on commit 36c6e1c

Please sign in to comment.