Example #1
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 #2
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 #3
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 #4
0
        public void ResponsesReceived_ShowsTheView()
        {
            var userGroup = new UserGroupDto {
                Id = Guid.NewGuid()
            };
            var suitableParents = new[] { new UserGroupDto {
                                              Id = Guid.NewGuid()
                                          } };

            Presenter.Handle(new UserGroupSelectedEvent(Guid.NewGuid()));
            RequestDispatcherStub.SetResponsesToReturn(new GetUserGroupResponse {
                UserGroup = userGroup
            },
                                                       new GetSuitableParentUserGroupsResponse {
                SuitableParentUserGroups = suitableParents
            });
            RequestDispatcherStub.ReturnResponses();

            ViewMock.Verify(v => v.Show());
        }
Example #5
0
        public void ResponsesReceived_PopulatesModel()
        {
            var userGroup = new UserGroupDto {
                Id = Guid.NewGuid()
            };
            var suitableParents = new[] { new UserGroupDto {
                                              Id = Guid.NewGuid()
                                          } };

            Presenter.Handle(new UserGroupSelectedEvent(Guid.NewGuid()));
            RequestDispatcherStub.SetResponsesToReturn(new GetUserGroupResponse {
                UserGroup = userGroup
            },
                                                       new GetSuitableParentUserGroupsResponse {
                SuitableParentUserGroups = suitableParents
            });
            RequestDispatcherStub.ReturnResponses();

            Assert.AreEqual(userGroup.Id, Presenter.BindingModel.Id);
            Assert.AreEqual(suitableParents[0].Id, Presenter.BindingModel.SuitableParentUserGroups[1].Id);
        }
Example #6
0
        public void ResponseReceivedForExistingUserGroup_PublishesCorrectEvent()
        {
            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);
            RequestDispatcherStub.SetResponsesToReturn(new SaveUserGroupResponse());

            Presenter.PersistChanges();
            RequestDispatcherStub.ReturnResponses();

            var publishedEvent = EventAggregatorStub.GetPublishedEvents <UserGroupChangedEvent>()[0];

            Assert.AreEqual(userGroup.Id, publishedEvent.Id);
            Assert.AreEqual(userGroup.Name, publishedEvent.Name);
            Assert.AreEqual(userGroup.ParentId.Value, publishedEvent.ParentId.Value);
            Assert.IsFalse(publishedEvent.IsNew);
        }