public void OperationShouldSerializeAsyncMethodWithViewModel() { var vmMock = new NavigableViewModelMock(); ServiceProvider.OperationCallbackFactory = new SerializableOperationCallbackFactory(); var operation = new AsyncOperation<bool>(); IOperationResult<bool> result = OperationResult.CreateResult(OperationType.PageNavigation, this, true, new NavigationContext(NavigationType.Page, NavigationMode.Back, vmMock, vmMock, this)); AsyncMethodWithViewModel(operation, true, vmMock); var callback = operation.ToOperationCallback(); var serialize = Serializer.Serialize(callback); serialize.Position = 0; callback = (IOperationCallback)Serializer.Deserialize(serialize); IocContainer.GetFunc = (type, s, arg3) => { if (type == GetType()) return this; return Activator.CreateInstance(type); }; AsyncMethodInvoked.ShouldBeFalse(); ViewModel.ShouldBeNull(); callback.Invoke(result); AsyncMethodInvoked.ShouldBeTrue(); ViewModel.ShouldEqual(vmMock); }
public void CallbackAnonMethod(IOperationResult<bool> result, NavigableViewModelMock vm) { ResultAnon = result; ViewModel = vm; }