Imo jak na razie mocno średnio, kazałem mu napisać metodę jakiegoś serwisu uzupełniającą jakiś randomowy ViewModel i napisać do niej unit test z wykorzystaniem DI tego serwisu. Razultat.
[TestClass]
public class ViewModelTests
{
private List<User> users;
private List<Account> accounts;
[TestInitialize]
public void Initialize()
{
users = new List<User>
{
new User { Email = "user1@email.com", PrivateData = "User 1 private data" },
new User { Email = "user2@email.com", PrivateData = "User 2 private data" },
};
accounts = new List<Account>
{
new Account
{
Name = "Account 1",
Emails = new List<Email>
{
new Email { Email = "user1@email.com", Name = "Email 1" },
new Email { Email = "user1@email.com", Name = "Email 2" },
}
},
new Account
{
Name = "Account 2",
Emails = new List<Email>
{
new Email { Email = "user2@email.com", Name = "Email 3" },
new Email { Email = "user2@email.com", Name = "Email 4" },
}
},
};
}
[TestMethod]
public void FillViewModel_ShouldFillUserAndAccount()
{
var service = new DomainService(users, accounts);
IDomainService domainService = service;
var viewModel = new ViewModel();
domainService.FillViewModel(viewModel, "user1@email.com");
Assert.IsNotNull(viewModel.user);
Assert.AreEqual("user1@email.com", viewModel.user.Email);
Assert.AreEqual("User 1 private data", viewModel.user.PrivateData);
Assert.IsNotNull(viewModel.emails);
Assert.AreEqual(2, viewModel.emails.Count);
Assert.AreEqual("Email 1", viewModel.emails[0].Name);
Assert.AreEqual("Email 2", viewModel.emails[1].Name);
}
}