Example #1
0
        public void RetrievesSuitableParentUserGroups()
        {
            var userGroupId = Guid.NewGuid();

            Presenter.Handle(new UserGroupSelectedEvent(userGroupId));
            Assert.AreEqual(userGroupId, RequestDispatcherStub.GetRequest <GetSuitableParentUserGroupsRequest>().UserGroupId.Value);
        }
Example #2
0
        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);
        }
Example #3
0
        public void RetrievesUserGroupDetails()
        {
            var userGroupId = Guid.NewGuid();

            Presenter.Handle(new UserGroupSelectedEvent(userGroupId));
            Assert.AreEqual(userGroupId, RequestDispatcherStub.GetRequest <GetUserGroupRequest>().UserGroupId);
        }
Example #4
0
        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));
        }
Example #5
0
 public void InstructsViewToExpandTreeViewWhenUserGroupsHaveBeenReceived()
 {
     RequestDispatcherStub.SetResponsesToReturn(new GetAllUserGroupsResponse {
         UserGroups = new[] { new UserGroupDto() }
     });
     Presenter.Initialize();
     RequestDispatcherStub.ReturnResponses();
     ViewMock.Verify(v => v.ExpandTreeView());
 }
Example #6
0
 public void PopulatesModelWithReceivedUserGroups()
 {
     RequestDispatcherStub.SetResponsesToReturn(new GetAllUserGroupsResponse {
         UserGroups = new[] { new UserGroupDto() }
     });
     Presenter.Initialize();
     RequestDispatcherStub.ReturnResponses();
     Assert.AreEqual(1, Presenter.BindingModel.UserGroups.Count);
 }
Example #7
0
        public void ChecksPermission()
        {
            Presenter.Initialize();

            var request = RequestDispatcherStub.GetRequest <CheckPermissionsRequest>();

            Assert.AreEqual(1, request.PermissionsToCheck.Length);
            Assert.AreEqual(Permissions.CreateUserGroup, request.PermissionsToCheck[0]);
        }
Example #8
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);
        }
Example #10
0
        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);
        }
Example #11
0
 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());
        }
Example #14
0
        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);
        }
Example #15
0
        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());
        }
Example #16
0
        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);
        }
Example #17
0
        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);
        }
Example #18
0
        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;
 }
Example #20
0
 public void DoesNotProceedIfModelIsInvalid()
 {
     Presenter.BindingModel.Name = null;
     Presenter.PersistChanges();
     Assert.IsFalse(RequestDispatcherStub.HasRequest <SaveUserGroupRequest>());
 }
Example #21
0
 public void SendsCorrectRequest()
 {
     Presenter.BindingModel.Id = Guid.NewGuid();
     Presenter.Delete();
     Assert.AreEqual(Presenter.BindingModel.Id.Value, RequestDispatcherStub.GetRequest <DeleteUserGroupRequest>().UserGroupId);
 }
 public RequestDispatcherFactoryStub(RequestDispatcherStub requestDispatcherStub)
 {
     this.requestDispatcherStub = requestDispatcherStub;
 }
Example #23
0
 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>());
 }