Sorry for the meaningless title, but I do have a general question on using JustMock.
Imagine the following SUT
public
interface
IDao
{
// throws an exception on duplicate key
void
Insert(
string
key,
string
value);
// throws an exception if key not available
void
Update(
string
key,
string
value);
// throws an exception of key not found
string
FindByKey(
string
key);
}
public
interface
IService
{
string
Get(
string
key);
void
Set(
string
key,
string
value);
// should insert or update the value for the given key
void
Save(
string
key,
string
value);
}
public
class
ServiceImpl : IService
{
private
readonly
IDao _dao;
public
ServiceImpl(IDao dao)
{
_dao = dao;
}
public
string
Get(
string
key)
{
return
_dao.FindById(key);
}
public
void
Set(
string
key,
string
value)
{
_dao.Insert(key, value);
}
public
void
Save(
string
key,
string
value)
{
var value = Get(key);
if
(
null
== value)
{
Set(key, value);
}
else
{
_dao.Update(key, value);
}
}
}
Now have a look at my test case for the save method:
Running this test I get the error that Mock.AssertAll(dao) failed because the IDao.Insert method has never been called ?
Debugging through the test I could step into
service.Save()
-> service.Get() => returning NULL as expected
-> service.Set()
-> dao.Insert (which is proxied)
What am I doing wrong here ?
Kind regards
Sebastian