Hi Joseph, Have you seen the VB/AAA example on the Rhino Mocks wiki? http://ayende.com/Wiki/Rhino+mocks+3.5+and+VB.Net+the+AAA+syntax.ashx
In terms of bsaic lamda translation, I think the following C#: model.Stub(x => x.CreateNewCalendar(vew.CalendarName).Return(c); Translates to something like: model.Stub(Function(x) x.CreateNewCalendar(view.CalendarName)).Return(c) Best of luck with it all! Regards, David On Thu, Apr 15, 2010 at 12:10 AM, Joseph Dineen <[email protected]>wrote: > Thanks David, but my problem is that I have been living in a .NET 2.0 > world the past while and this lambda stuff is new to me. > I think I can grok what the C# code is doing but I have no idea how to > translate to the VB equavilent. I was hoping I could find examples > where someone had done it in both languages side by side. > That way I could possibly figure out the translation myself. > I also have problems setting up an expected call on a sub (void method > to C# people) but I have come across references to this on the net. > I'll have to re-read the references though because > my first stab at it is still not compiling. > > Anyhoo thanks to everyone for the help and if I make no progress I > guess I'll be back. > > > On Apr 14, 1:10 pm, David Tchepak <[email protected]> wrote: > > Not sure if it helps for this particular case, but I wrote an intro to > AAA > > with Rhino Mocks a while back, although you'll have to translate it from > C#: > > > > http://www.davesquared.net/2008/10/very-basics-of-aaa-with-rhino-mock... > > > > <http://www.davesquared.net/2008/10/very-basics-of-aaa-with-rhino-mock.. > .>Oh, > > you asked for a "good" resource. Never mind. ;) > > > > On Wed, Apr 14, 2010 at 10:03 PM, Joseph Dineen <[email protected] > >wrote: > > > > > Thanks, > > > It apprears to have been simple blindness on my part. > > > > > So can anyone point me at a good resource to recast it in the newer > > > AAA syntax? > > > > > On Apr 14, 12:45 pm, bill richards <[email protected]> > > > wrote: > > > > Further to this .... > > > > > > this is the reasn for my reluctance to use StrictMock : the use of a > > > > StrictMock implies your internal knowledge of the item being mocked, > > > > you need to know what the internal implications are for making a > call. > > > > To me, this is at far too granular a level. > > > > > > On Apr 14, 12:42 pm, bill richards <[email protected]> > > > > wrote: > > > > > > > In that line of code you have said: > > > > > > > I expect the member CreateNewCalendar to be called on model using > the > > > > > value view.CalendarName as a parameter. > > > > > I expect it to be called at least once and it will return c. > > > > > > > Nowhere have you stated that you expect model.GetCalendar to be > > > > > called. > > > > > > > On Apr 14, 12:08 pm, Joseph Dineen <[email protected]> > wrote: > > > > > > > > But I thought that the Line in my test > > > > > > Rhino.Mocks.Expect.Call(model.CreateNewCalendar(view.CalendarName)).Repeat.AtLeastOnce.Return(c) > > > > > > > > Sets up such an expectation? > > > > > > > > If it does not then how does one set up the expectation? > > > > > > > > On Apr 14, 11:49 am, bill richards <[email protected] > > > > > > > > wrote: > > > > > > > > > The point that Tim is making is that, ANY call that is made on > your > > > > > > > StrictMock, for which you HAVE NOT set an expectation for, will > > > cause > > > > > > > the test to fail. > > > > > > > > > Whe you use a StrictMock, you have to set an expectation for > EVERY > > > > > > > call made on that object. So it is completely expeted that a > call > > > to > > > > > > > model.GetCalendar will throw an expectation excepton, since you > > > have > > > > > > > not set up such an expectation. > > > > > > > > > On Apr 14, 11:07 am, Joseph Dineen <[email protected]> > > > wrote: > > > > > > > > > > Well I have tried it using DynamicMock instead of StrictMock > and > > > it > > > > > > > > made no difference. > > > > > > > > Besides, the line > > > > > > Rhino.Mocks.Expect.Call(model.CreateNewCalendar(view.CalendarName)).Repeat.AtLeastOnce.Return(c) > > > > > > > > > > Should create the expectation and I know the event is raised > > > because I > > > > > > > > can see the call in the event in the debugger. > > > > > > > > The problem arises when the cal is made to the > model.GetCalendar > > > > > > > > method. There the expectation exception gets raised. > > > > > > > > I have akso tried adding IgnoreArguments to no avial. > > > > > > > > I am sure I am missing something but I do not know what. > > > > > > > > > > On Apr 13, 8:39 pm, Tim Barcz <[email protected]> wrote: > > > > > > > > > > > It appears you are using strict mocks...which means any > call > > > not "expected" > > > > > > > > > will cause the test to fail. > > > > > > > > > > > On Tue, Apr 13, 2010 at 11:40 AM, Joseph Dineen < > > > [email protected]>wrote: > > > > > > > > > > > > Hi, I am new to Rhino Mocks and I have tried to post this > > > message > > > > > > > > > > before but it does not seem to have appeared on the > > > messageboard nor > > > > > > > > > > did I get any indication that the moderators have seen > the > > > message. > > > > > > > > > > While i have been using Unit Testing and TDD for a while > I > > > have not > > > > > > > > > > gotten into mocking in any major way. I did use > DotNetMock > > > for a while > > > > > > > > > > in a single project and I want to refactor parts of it > using > > > VB.NET > > > > > > > > > > 2010 as a learning excersise but found that DotNetMock > does > > > not play > > > > > > > > > > well with MSUnitTest and appears to be a dead project. > > > > > > > > > > So I decided to learn Rhino Mocks after some research on > the > > > net. > > > > > > > > > > To do this I decided to implement a view model comtoller > > > application > > > > > > > > > > and communicate from the view to the controller with > events, > > > call > > > > > > > > > > stuff from the model in the event handlers on the > controller > > > and see > > > > > > > > > > how it works out. I also decided to use the older Replay > > > verify syntax > > > > > > > > > > since I have mostly worked with 2005 and earlier and have > not > > > yet > > > > > > > > > > looked at lambda functions. Also the only examples in vb > I > > > could find > > > > > > > > > > used this systax and while I could see that the C# lambda > > > stuff was > > > > > > > > > > trying to do I have no idea of how to implement that code > in > > > vb. > > > > > > > > > > So some code ( the application aim to generate fantasy > > > calendars for > > > > > > > > > > rpgs.) > > > > > > > > > > > > ''' <summary> > > > > > > > > > > ''' This the view of the calendars > > > > > > > > > > ''' </summary> > > > > > > > > > > Public Interface ICalendarsView > > > > > > > > > > > > 'the events represent user actions that are addressed > by > > > the model > > > > > > > > > > Event CreateNewCalendar As EventHandler > > > > > > > > > > > > Event Save As EventHandler > > > > > > > > > > > > Event GetCalendarList As EventHandler > > > > > > > > > > > > Event GetCalendar As EventHandler > > > > > > > > > > > > Property CalendarName As String > > > > > > > > > > > > ...... > > > > > > > > > > > > 'these methods allow the controller to pass data to > the > > > view > > > > > > > > > > Sub ShowPreviewForYear(ByVal yearNumber As Integer) > > > > > > > > > > > > Sub SetCalendar(ByVal c As Calendar) > > > > > > > > > > > > Sub SetCalendarList(ByVal calList As List(Of > Calendar)) > > > > > > > > > > > > End Interface > > > > > > > > > > > > ''' <summary> > > > > > > > > > > ''' the Model > > > > > > > > > > ''' </summary> > > > > > > > > > > ''' <remarks></remarks> > > > > > > > > > > Public Interface ICalendarEngine > > > > > > > > > > > > Function GetCalendars() As List(Of Calendar) > > > > > > > > > > > > Function GetCalendar(ByVal name As String) As Calendar > > > > > > > > > > > > Function CreateNewCalendar(ByVal name As String) As > > > Calendar > > > > > > > > > > > > Sub SaveCalendar(ByVal c As Calendar) > > > > > > > > > > > > End Interface > > > > > > > > > > > > The controller > > > > > > > > > > '' <summary> > > > > > > > > > > ''' Controller of the view > > > > > > > > > > ''' </summary> > > > > > > > > > > ''' <remarks>Instantiated and refers to the model and the > > > view</ > > > > > > > > > > remarks> > > > > > > > > > > Public Class CalendarsController > > > > > > > > > > > > Private WithEvents _view As ICalendarsView > > > > > > > > > > Private _model As ICalendarEngine > > > > > > > > > > > > Public Sub New(ByVal view As ICalendarsView, ByVal > model > > > As > > > > > > > > > > ICalendarEngine) > > > > > > > > > > If IsNothing(view) Or IsNothing(model) Then > > > > > > > > > > Throw New ArgumentNullException("Passed > parameters > > > were > > > > > > > > > > not instantiated") > > > > > > > > > > End If > > > > > > > > > > _view = view > > > > > > > > > > _model = model > > > > > > > > > > 'Add the event handlers > > > > > > > > > > AddHandler _view.CreateNewCalendar, AddressOf > > > > > > > > > > OnCreateNewCalendar > > > > > > > > > > > > End Sub > > > > > > > > > > > > Private Sub OnCreateNewCalendar(ByVal sender As > Object, > > > ByVal e As > > > > > > > > > > EventArgs) > > > > > > > > > > Dim c As Calendar = > _model.GetCalendar(CType(sender, > > > > > > > > > > ICalendarsView).CalendarName) > > > > > > > > > > > > End Sub > > > > > > > > > > > > The test > > > > > > > > > > > > Imports System.Text > > > > > > > > > > Imports ArdoughterSoftware.FantasyCalendar > > > > > > > > > > Imports Rhino.Mocks > > > > > > > > > > Imports Rhino.Mocks.Interfaces > > > > > > > > > > > > <TestClass()> > > > > > > > > > > Public Class TestCalendarsController > > > > > > > > > > > > Private testContextInstance As TestContext > > > > > > > > > > > > '''<summary> > > > > > > > > > > '''Gets or sets the test context which provides > > > > > > > > > > '''information about and functionality for the current > > > test run. > > > > > > > > > > '''</summary> > > > > > > > > > > Public Property TestContext() As TestContext > > > > > > > > > > Get > > > > > > > > > > Return testContextInstance > > > > > > > > > > End Get > > > > > > > > > > Set(ByVal value As TestContext) > > > > > > > > > > testContextInstance = value > > > > > > > > > > End Set > > > > > > > > > > End Property > > > > > > > > > > > > Private moMockery As MockRepository > > > > > > > > > > > > ' Use TestInitialize to run code before running each > test > > > > > > > > > > <TestInitialize()> Public Sub MyTestInitialize() > > > > > > > > > > moMockery = New MockRepository > > > > > > > > > > End Sub > > > > > > > > > > ' > > > > > > > > > > ' Use TestCleanup to run code after each test has run > > > > > > > > > > <TestCleanup()> Public Sub MyTestCleanup() > > > > > > > > > > moMockery.VerifyAll() > > > > > > > > > > End Sub > > > > > > > > > > > > Public Sub > TestCreateNewCalendarEventIsRaisedTheOldWay() > > > > > > > > > > Dim e As New EventArgs > > > > > > > > > > Dim c As New Calendar > > > > > > > > > > Dim view As ICalendarsView > > > > > > > > > > view = moMockery.Stub(Of ICalendarsView)() > > > > > > > > > > Dim model As ICalendarEngine > > > > > > > > > > model = moMockery.StrictMock(Of ICalendarEngine)() > > > > > > > > > > Dim calendarName As String = "Dale Reckoning" > > > > > > > > > > view.CalendarName = calendarName > > > > > > > > > > AddHandler view.CreateNewCalendar, Nothing > > > > > > > > > > LastCall.Constraints(Constraints.Is.NotNull) > > > > > > > > > > > > Dim CreateNewCalendarEventRaiser As IEventRaiser = > > > > > > > > > > LastCall.GetEventRaiser() > > > > ... > > > > read more » > > -- > 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]<rhinomocks%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rhinomocks?hl=en. > > -- 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.
