/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.service;
import android.test.AndroidTestCase;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
public class AstridDependencyInjectorTests extends AndroidTestCase {
protected static class Helper {
public Object getObject() {
return null;
}
}
@Override
protected void setUp() throws Exception {
super.setUp();
// in case some state from other unit tests overwrote injector
DependencyInjectionService.getInstance().addInjector(
new AstridDependencyInjector()
);
}
public void testWithString() {
Helper helper = new Helper() {
@Autowired
public String applicationName;
@Override
public Object getObject() {
return applicationName;
};
};
DependencyInjectionService.getInstance().inject(helper);
assertTrue(((String)helper.getObject()).length() > 0);
}
public void testWithClass() {
Helper helper = new Helper() {
@Autowired
public TaskService taskService;
@Override
public Object getObject() {
return taskService;
};
};
DependencyInjectionService.getInstance().inject(helper);
assertTrue(helper.getObject() instanceof TaskService);
Helper helper2 = new Helper() {
@Autowired
public TaskService taskService;
@Override
public Object getObject() {
return taskService;
};
};
DependencyInjectionService.getInstance().inject(helper2);
assertTrue(helper.getObject() == helper2.getObject());
}
}