예제 #1
0
        public async void WhenUserIsAuthorised_GetsProducer_AndProducerSubmissions_AndSaveChanges()
        {
            // Arrange
            var builder = new RemoveProducerHandlerBuilder();
            var request = new RemoveProducer(Guid.NewGuid());

            // Act
            await builder.Build().HandleAsync(request);

            // Assert
            A.CallTo(() => builder.RemoveProducerDataAccess.GetProducerRegistration(request.RegisteredProducerId))
            .MustHaveHappened(Repeated.Exactly.Once);

            A.CallTo(() => builder.RemoveProducerDataAccess.GetProducerSubmissionsForRegisteredProducer(request.RegisteredProducerId))
            .MustHaveHappened(Repeated.Exactly.Once);

            A.CallTo(() => builder.RemoveProducerDataAccess.SaveChangesAsync())
            .MustHaveHappened(Repeated.Exactly.Once);
        }
예제 #2
0
        public async void WhenUserIsUnauthorised_DoesNotGetProducer_OrSaveChanges()
        {
            // Arrange
            var builder = new RemoveProducerHandlerBuilder();

            A.CallTo(() => builder.WeeeAuthorization.EnsureCanAccessInternalArea())
            .Throws <SecurityException>();

            var request = new RemoveProducer(Guid.NewGuid());

            // Act
            await Assert.ThrowsAsync <SecurityException>(() => builder.Build().HandleAsync(request));

            // Assert
            A.CallTo(() => builder.RemoveProducerDataAccess.GetProducerRegistration(A <Guid> ._))
            .MustNotHaveHappened();

            A.CallTo(() => builder.RemoveProducerDataAccess.SaveChangesAsync())
            .MustNotHaveHappened();
        }