I'm preparing a presentation on Rhino Mocks, Dependency Injection and
MSTest and I got a bit unstuck in my demo code where I want to
validate the arguments being passed to the method on my mock object. I
cannot figure out the best way to achieve this. The code under test
does the following:
/// <summary>
/// Inserts a new customer instance in to the database
/// </summary>
/// <param name="i_customer">The Customer instance to insert.</
param>
public void Insert(Customer i_customer)
{
if (i_customer == null)
throw new ArgumentNullException();
if (!string.IsNullOrEmpty(i_customer.ContactName) &&
i_customer.ContactName.Contains(" "))
{
string[] names = i_customer.ContactName.Split(' ');
if (names.Length > 1)
{
names[names.Length - 1] = names[names.Length -
1].ToUpper();
}
i_customer.ContactName = string.Join(" ", names);
}
m_customerRepository.Insert(i_customer);
}
And what I want to do in my Test Method is verify that the customer
instance that is passed in to the .Insert method of the
customerRepository (shown in the code snippet above):
[TestMethod]
public void TestInsertValidCustomerWithSurname()
{
// Create the mock instance
ICustomerRepository customerRepository =
m_mockRepository.DynamicMock<ICustomerRepository>();
Customer newEntry = new Customer()
{
Address = "123 High Road",
City = "SomeCity",
CompanyName = "Acompany",
ContactName = "James Person",
ContactTitle = "Manager",
Country = "United States",
CustomerID = "987654321",
Fax = "123-456-7891",
Phone = "123-456-7892",
PostalCode = "01234",
Region = "NorthEast"
};
// Now we set our expectations - when a null is passed the
underlying method should throw an exception
Expect.Call(() => customerRepository.Insert(newEntry));
// Replay our expectations
m_mockRepository.ReplayAll();
// Create a real instance of the EmloyeeConnector that we
want to put under test
CustomerManager manager = new CustomerManager
(customerRepository);
manager.Insert(newEntry);
}
But I can’t figure out what is the best way to fir the validation of
the newEntry.ContactName property in the Expect.Call(() =>
customerRepository.Insert(newEntry))? Does anyone have a suggestion?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino.Mocks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/RhinoMocks?hl=en
-~----------~----~----~----~------~----~------~--~---