KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
[unit testing newbie] [c#] Consider the following scenario: I'm using Silverlight and calling a WCF service. Silverlight can only call WCF services asynchronously. I build a wrapper around the WCF service so that I can work with Action parameters. (makes the client code a lot cleaner). So I have an async service that retrieves meeting rooms. public interface IMeetingRoomService { void GetRooms(Action<List<MeetingRoom>> result); } Turning GetRooms into List<MeetingRoom> GetRooms() is not an option. I want to use this service in a ViewModel to set a public property called Rooms. public class SomeViewModel { private readonly IMeetingRoomService _meetingRoomService; public List<MeetingRoom> Rooms { get; set; } public SomeViewModel(IMeetingRoomService meetingRoomService) { this._meetingRoomService = meetingRoomService; } public void GetRooms() { // Code that calls the service and sets this.Rooms _meetingRoomService.GetRooms(result => Rooms = result); } } I want to unit test the implementation of SomeViewModel.GetRooms(). (For this question I quickly wrote the implementation but I'm actually trying to use TDD.) How do I finish this test? I'm using NUnit and Moq. [Test] public void GetRooms_ShouldSetRooms() { var theRooms = new List<MeetingRoom> { new MeetingRoom(1, "some room"), new MeetingRoom(2, "some other room"), }; var meetingRoomService = new Mock<IMeetingRoomService>(); //How do I setup meetingRoomService so that it gives theRooms in the Action?? var viewModel = new SomeViewModel(meetingRoomService.Object); viewModel.GetRooms(); Assert.AreEqual(theRooms, viewModel .Rooms); }
Tags (comma-separated)
Save Edits
Cancel