Ese no es el problema ya que utilizo justmock lite, el problema es como simular la inserción como si fuera el entity pero como no se puede utilizar desde prueba unitaria me toco es verificar con los mensajes de "guardado exisitoso" que se regresan a la vista que crean un toas :s, algo así mas o menos.
Código:
public ViewResult CreateNewPerson(Person _person)
{
var person = repository.FindByIdentification(_person.Identification);
if (!person ) //Regresa true si existe
try
{
repository.Save(_person);
ViewBag.Message = "Guardado Exitoso!";
}
catch (Exception)
{
ViewBag.Message = "Error al crear al nuevo votante, intentelo de nuevo.";
return View("CreateNewPerson", new { Message = ViewBag.Message });
}
else
ViewBag.Message = "La Identificación ya ha sido registrada";
return View("Index", new { Message = ViewBag.Message } );
}
y en la prueba unitaria algo como (utilizando justmock)
Código:
[TestMethod]
public void Create_New_Person_With_Success()
{
var personRepository = Mock.Create<IRepository<Person>>();
Person _person = new Person() { FirstName = "Diana", Identification = "1111111"};
Mock.Arrange(() => voterRepository.FindByIdentification(person.Identification))
.Returns(false)
.MustBeCalled();
PersonController controller = new PersonController(personRepository);
ViewResult ViewResult = controller.CreateNewVoter(person);
var model = ViewResult.ViewBag.Message;
Assert.AreEqual("Guardado Exitoso!", model);
}
Esto es lo maximo que he podido simular en un guardado exitoso con entity :S, alguna otra idea?