Hello
I am developing web part for MOSS application in asp.net (c#) 2.0,
I am trying to Mock the SharePoint Objects, but i am getting error on SPListCollection object.
Method to be tested is
public void PopulateDropDown(SPListCollection listCollection, DropDownList ddlListNames)
{
foreach (SPList list in listCollection)
{
if (list != null)
{
ListItem listItem = new ListItem(list.Title, list.Title);
ddlListNames.Items.Add(listItem);
}
}
}
Tet Method written as follow
[Test]
[VerifyMocks]
public void PopulateListNameDropDown_TestWithMock()
{
DropDownList ddlListName = new DropDownList();
SPWeb web = CreateMockedSPWeb();
SPListCollection listCollection = web.Lists;
retrieveList.PopulateDropDown(listCollection, ddlListName);
}
private SPWeb CreateMockedSPWeb()
{
SPWeb web = RecorderManager.CreateMockedObject<SPWeb>();
SPContext context = RecorderManager.CreateMockedObject<SPContext>();
SPListCollection listCollection = RecorderManager.CreateMockedObject<SPListCollection>();
SPList list = RecorderManager.CreateMockedObject<SPList>();
using (RecordExpectations recorder = RecorderManager.StartRecording())
{
recorder.ExpectAndReturn(context.Web, web);
recorder.ExpectAndReturn(web.Lists, listCollection);
recorder.ExpectAndReturn(listCollection.Count, 1);
recorder.ExpectAndReturn(listCollection[0], list).RepeatAlways();
recorder.ExpectAndReturn(list.Title, "AssetUpload").RepeatAlways();
}
return web;
}
I am getting following error
at Microsoft.SharePoint.SPListCollection.EnsureListsData(Guid webId, String strListName)
at Microsoft.SharePoint.SPListCollection.EnsureListsData(String strListName)
at Microsoft.SharePoint.SPListCollection.Undirty()
at Microsoft.SharePoint.SPBaseCollection.System.Collections.IEnumerable.GetEnumerator()
at InteractivePortal.WebParts.AJAXEnabledListRetrieve.PopulateDropDown(SPListCollection listCollection, DropDownList ddlList)
at InteractivePortal.WebParts.NUnitTest.TestAJAXEnabledListRetrieve.PopulateListNameDropDown_TestWithMock() in C:MOSSAvanadeSiteInteractivePortalWebParts.NUnitTestTestAJAXEnabledListRetrieve.cs:line 79
at TypeMock.VerifyMocksAttribute.Execute()
at TypeMock.DecoratorAttribute.CallDecoratedMethod()
at TypeMock.ClearMocksAttribute.Execute()
at TypeMock.MethodDecorator.e()
at TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5)
at TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected)
at InteractivePortal.WebParts.NUnitTest.TestAJAXEnabledListRetrieve.PopulateListNameDropDown_TestWithMock() in C:MOSSAvanadeSiteInteractivePortalWebParts.NUnitTestTestAJAXEnabledListRetrieve.cs:line 75
Can you please help me to trac where i am wrong.