public void RetrievesSuitableParentUserGroups() { var userGroupId = Guid.NewGuid(); Presenter.Handle(new UserGroupSelectedEvent(userGroupId)); Assert.AreEqual(userGroupId, RequestDispatcherStub.GetRequest <GetSuitableParentUserGroupsRequest>().UserGroupId.Value); }
public void ResponseReceivedForNewUserGroup_PublishesCorrectEvent() { var suitableParents = new[] { new UserGroupDto { Id = Guid.NewGuid() } }; var userGroup = new UserGroupDto { Name = "some group", ParentId = suitableParents[0].Id }; Presenter.BindingModel.Populate(suitableParents, userGroup); var newId = Guid.NewGuid(); RequestDispatcherStub.SetResponsesToReturn(new SaveUserGroupResponse { NewUserGroupId = newId }); Presenter.PersistChanges(); RequestDispatcherStub.ReturnResponses(); var publishedEvent = EventAggregatorStub.GetPublishedEvents <UserGroupChangedEvent>()[0]; Assert.AreEqual(newId, publishedEvent.Id); Assert.AreEqual(userGroup.Name, publishedEvent.Name); Assert.AreEqual(userGroup.ParentId.Value, publishedEvent.ParentId.Value); Assert.IsTrue(publishedEvent.IsNew); }
public void RetrievesUserGroupDetails() { var userGroupId = Guid.NewGuid(); Presenter.Handle(new UserGroupSelectedEvent(userGroupId)); Assert.AreEqual(userGroupId, RequestDispatcherStub.GetRequest <GetUserGroupRequest>().UserGroupId); }
public void ChecksPermissions() { Presenter.Handle(new UserGroupSelectedEvent(Guid.NewGuid())); var request = RequestDispatcherStub.GetRequest <CheckPermissionsRequest>(); Assert.IsTrue(request.PermissionsToCheck.Contains(Permissions.EditUserGroup)); Assert.IsTrue(request.PermissionsToCheck.Contains(Permissions.DeleteUserGroup)); }
public void InstructsViewToExpandTreeViewWhenUserGroupsHaveBeenReceived() { RequestDispatcherStub.SetResponsesToReturn(new GetAllUserGroupsResponse { UserGroups = new[] { new UserGroupDto() } }); Presenter.Initialize(); RequestDispatcherStub.ReturnResponses(); ViewMock.Verify(v => v.ExpandTreeView()); }
public void PopulatesModelWithReceivedUserGroups() { RequestDispatcherStub.SetResponsesToReturn(new GetAllUserGroupsResponse { UserGroups = new[] { new UserGroupDto() } }); Presenter.Initialize(); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(1, Presenter.BindingModel.UserGroups.Count); }
public void ChecksPermission() { Presenter.Initialize(); var request = RequestDispatcherStub.GetRequest <CheckPermissionsRequest>(); Assert.AreEqual(1, request.PermissionsToCheck.Length); Assert.AreEqual(Permissions.CreateUserGroup, request.PermissionsToCheck[0]); }
public void PublishesUserGroupDeletedEventWhenResponseIsReturned() { Presenter.BindingModel.Id = Guid.NewGuid(); RequestDispatcherStub.SetResponsesToReturn(new DeleteUserGroupResponse()); Presenter.Delete(); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(Presenter.BindingModel.Id.Value, EventAggregatorStub.GetPublishedEvents <UserGroupDeletedEvent>()[0].UserGroupId); }
public void PublishesEventIfRemoteExceptionOccurred() { var exception = new ExceptionInfo(); Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); RequestDispatcherStub.SetResponsesToReturn(new GetSuitableParentUserGroupsResponse { Exception = exception }); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(exception, EventAggregatorStub.GetPublishedEvents <RemoteExceptionOccurredEvent>()[0].ExceptionInfo); }
public void PublishesEventIfRemoteExceptionOccurred() { var exception = new ExceptionInfo(); Presenter.Initialize(); RequestDispatcherStub.SetResponsesToReturn(new GetAllUserGroupsResponse { Exception = exception }); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(exception, EventAggregatorStub.GetPublishedEvents <RemoteExceptionOccurredEvent>()[0].ExceptionInfo); }
public void HidesAddNewButtonOnViewIfUserDoesntHaveRequiredPermission() { RequestDispatcherStub.SetResponsesToReturn(new CheckPermissionsResponse { AuthorizationResults = new Dictionary <Guid, bool> { { Permissions.CreateUserGroup, false } } }); Presenter.Initialize(); RequestDispatcherStub.ReturnResponses(); ViewMock.Verify(v => v.HideAddNewButton()); }
public void ResponseReceived_PopulatesModel() { var suitableParents = new[] { new UserGroupDto { Id = Guid.NewGuid() } }; Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); RequestDispatcherStub.SetResponsesToReturn(new GetSuitableParentUserGroupsResponse { SuitableParentUserGroups = suitableParents }); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(suitableParents[0].Id, Presenter.BindingModel.SuitableParentUserGroups[1].Id); }
public void ResponsesReceived_ShowsTheView() { var suitableParents = new[] { new UserGroupDto { Id = Guid.NewGuid() } }; Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); RequestDispatcherStub.SetResponsesToReturn(new GetSuitableParentUserGroupsResponse { SuitableParentUserGroups = suitableParents }); RequestDispatcherStub.ReturnResponses(); ViewMock.Verify(v => v.Show()); }
public void PublishesEventIfRemoteExceptionOccurred() { Presenter.BindingModel.Id = Guid.NewGuid(); var exception = new ExceptionInfo(); RequestDispatcherStub.SetResponsesToReturn(new DeleteUserGroupResponse { Exception = exception }); Presenter.Delete(); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(exception, EventAggregatorStub.GetPublishedEvents <RemoteExceptionOccurredEvent>()[0].ExceptionInfo); }
public void ResponsesReceived_DoesNotTellViewToPreventModificationIfUserHasPermission() { Presenter.Handle(new UserGroupSelectedEvent(Guid.NewGuid())); RequestDispatcherStub.SetResponsesToReturn(new GetUserGroupResponse(), new GetSuitableParentUserGroupsResponse { SuitableParentUserGroups = new UserGroupDto[0] }, new CheckPermissionsResponse { AuthorizationResults = new Dictionary <Guid, bool> { { Permissions.DeleteUserGroup, true }, { Permissions.EditUserGroup, true } } }); RequestDispatcherStub.ReturnResponses(); ViewMock.Verify(v => v.PreventModification(), Times.Never()); }
public void PublishesEventIfRemoteExceptionOccurred() { var userGroup = new UserGroupDto { Id = Guid.NewGuid(), Name = "some group" }; Presenter.BindingModel.Populate(new UserGroupDto[0], userGroup); var exception = new ExceptionInfo(); RequestDispatcherStub.SetResponsesToReturn(new SaveUserGroupResponse { Exception = exception }); Presenter.PersistChanges(); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(exception, EventAggregatorStub.GetPublishedEvents <RemoteExceptionOccurredEvent>()[0].ExceptionInfo); }
public void ResponseReceivedForNewUserGroup_UpdatesUserGroupIdInBindingModel() { var userGroup = new UserGroupDto { Id = Guid.NewGuid(), Name = "some group" }; Presenter.BindingModel.Populate(new UserGroupDto[0], userGroup); var newId = Guid.NewGuid(); RequestDispatcherStub.SetResponsesToReturn(new SaveUserGroupResponse { NewUserGroupId = newId }); Presenter.PersistChanges(); RequestDispatcherStub.ReturnResponses(); Assert.AreEqual(newId, Presenter.BindingModel.Id.Value); }
public void SendsCorrectRequestIfModelIsValid() { var suitableParents = new[] { new UserGroupDto { Id = Guid.NewGuid() } }; var userGroup = new UserGroupDto { Id = Guid.NewGuid(), Name = "some group", ParentId = suitableParents[0].Id }; Presenter.BindingModel.Populate(suitableParents, userGroup); Presenter.PersistChanges(); var request = RequestDispatcherStub.GetRequest <SaveUserGroupRequest>(); Assert.AreEqual(userGroup.Id, request.Id); Assert.AreEqual(userGroup.Name, request.Name); Assert.AreEqual(userGroup.ParentId.Value, request.ParentId.Value); }
public RequestDispatcherFactoryStub(RequestDispatcherStub requestDispatcherStub) { this.requestDispatcherStub = requestDispatcherStub; }
public void DoesNotProceedIfModelIsInvalid() { Presenter.BindingModel.Name = null; Presenter.PersistChanges(); Assert.IsFalse(RequestDispatcherStub.HasRequest <SaveUserGroupRequest>()); }
public void SendsCorrectRequest() { Presenter.BindingModel.Id = Guid.NewGuid(); Presenter.Delete(); Assert.AreEqual(Presenter.BindingModel.Id.Value, RequestDispatcherStub.GetRequest <DeleteUserGroupRequest>().UserGroupId); }
public void LoadsAllUserGroups() { Presenter.Initialize(); Assert.IsTrue(RequestDispatcherStub.HasRequest <GetAllUserGroupsRequest>()); }
public void RetrievesSuitableParentUserGroups() { Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); Assert.IsNull(RequestDispatcherStub.GetRequest <GetSuitableParentUserGroupsRequest>().UserGroupId); }
public void DoesNotRetrievePermissionsForEditingOrDeleting() { Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); Assert.IsFalse(RequestDispatcherStub.HasRequest <CheckPermissionsRequest>()); }
public void DoesNotRetrieveUserGroupDetails() { Presenter.Handle(new UserGroupNeedsToBeCreatedEvent()); Assert.IsFalse(RequestDispatcherStub.HasRequest <GetUserGroupRequest>()); }