public void Manage_OnSuccess_ExecutesCorrectly() { // Arrange const string ExpectedValue = "EventReceiver DataId=\"DummyString\">DummyString<Result Status=\"0\" /></EventReceiver>"; var siteId = Guid.NewGuid(); ShimEventReceiverManager.ParseRequestDataString = _ => new ShimDataTable { RowsGet = () => new ShimDataRowCollection { GetEnumerator = () => new List <DataRow> { new ShimDataRow { ItemGetString = name => DummyGuid }, new ShimDataRow() { ItemGetString = name => name == WebIdAttribute?Guid.NewGuid() : DummyGuid }, new ShimDataRow() { ItemGetString = name => name == ListAttribute?Guid.NewGuid() : DummyGuid }, new ShimDataRow { ItemGetString = name => DummyGuid }, }.GetEnumerator() }, SelectString = filter => new DataRow[] { new ShimDataRow { ItemGetString = GetDataRowItemValue(SPEventReceiverType.AppInstalled, AddOperation, DummyString) }, new ShimDataRow { ItemGetString = GetDataRowItemValue(SPEventReceiverType.AppInstalled, RemoveOperation, DummyString) }, new ShimDataRow { ItemGetString = GetDataRowItemValue(SPEventReceiverType.AppInstalled, ListOperation, DummyString) } } }; ShimEventReceiverManager.AllInstances.AddEventReceiverSPListStringStringSPEventReceiverTypeXElementRef = AddEventReceiver; ShimEventReceiverManager.AllInstances.RemoveEventReceiverSPListStringStringSPEventReceiverTypeXElementRef = RemoveEventReceiver; ShimEventReceiverManager.AllInstances.ListEventReceiversSPListXElementRef = ListEventReceivers; // Act var result = eventReceiverManager.Manage(DummyString); // Assert result.ShouldSatisfyAllConditions( () => result.ShouldNotBeNullOrEmpty(), () => result.ShouldContain(ExpectedValue), () => AddEventReceiverWasCalled.ShouldBeTrue(), () => RemoveEventReceiverWasCalled.ShouldBeTrue(), () => ListEventReceiversWasCalled.ShouldBeTrue()); }