예제 #1
0
        public async Task Invoke_HasIdentity_DoesNotOverwrite()
        {
            // Arrange
            var data = new Dictionary <string, object?>(StringComparer.OrdinalIgnoreCase)
            {
                { "Headers", "{\"Authorization\":\"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.vVkzbkZ6lB3srqYWXVA00ic5eXwy4R8oniHQyok0QWY\"}" }
            };

            var identity = new MarketOperatorIdentity();

            ((IMarketOperatorIdentity)identity).AssignId("other");

            var mockedFunctionContext = new MockedFunctionContext();

            mockedFunctionContext.BindingContext.Setup(x => x.BindingData)
            .Returns(data);

            var actorContext = new Mock <IActorContext>();

            actorContext.Setup(x => x.CurrentActor).Returns(new Actor(Guid.NewGuid(), "?", "1234", "?"));
            var target = new JwtAuthenticationMiddleware(identity, actorContext.Object);

            // Act
            await target.Invoke(mockedFunctionContext, _ => Task.CompletedTask).ConfigureAwait(false);

            // Assert
            Assert.Equal("other", identity.ActorId);
        }
예제 #2
0
        public void Gln_NotAssigned_ThrowsException()
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            // Act + Assert
            Assert.Throws <InvalidOperationException>(() => target.ActorId);
        }
예제 #3
0
        public void AssignGln_InvalidValue_ThrowsException(string value)
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            // Act + Assert
            Assert.Throws <ArgumentException>(() => ((IMarketOperatorIdentity)target).AssignId(value));
        }
예제 #4
0
        public void AssignGln_AlreadyAssigned_ThrowsException()
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            ((IMarketOperatorIdentity)target).AssignId("other");

            // Act + Assert
            Assert.Throws <InvalidOperationException>(() => ((IMarketOperatorIdentity)target).AssignId("value"));
        }
예제 #5
0
        public void HasIdentity_WhenNotAssigned_ReturnsFalse()
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            // Act
            var actual = target.HasIdentity;

            // Assert
            Assert.False(actual);
        }
예제 #6
0
        public async Task Invoke_NullDelegate_ThrowsException()
        {
            // Arrange
            var actorContext = new Mock <IActorContext>();
            var identity     = new MarketOperatorIdentity();
            var target       = new JwtAuthenticationMiddleware(identity, actorContext.Object);

            // Act + Assert
            await Assert
            .ThrowsAsync <ArgumentNullException>(() => target.Invoke(new MockedFunctionContext(), null !))
            .ConfigureAwait(false);
        }
예제 #7
0
        public void AssignGln_FirstAssignment_AssignsValue()
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            // Act
            ((IMarketOperatorIdentity)target).AssignId("123456");

            // Assert
            Assert.True(target.HasIdentity);
            Assert.Equal("123456", target.ActorId);
        }
예제 #8
0
        public void HasIdentity_WhenAssigned_ReturnsTrue()
        {
            // Arrange
            var target = new MarketOperatorIdentity();

            ((IMarketOperatorIdentity)target).AssignId("ABC");

            // Act
            var actual = target.HasIdentity;

            // Assert
            Assert.True(actual);
        }
예제 #9
0
        public async Task Invoke_ActorContextHasIdentity_AssignsGlnToIdentity()
        {
            // Arrange
            var identity = new MarketOperatorIdentity();
            var mockedFunctionContext = new MockedFunctionContext();
            var actorContext          = new Mock <IActorContext>();

            actorContext.Setup(x => x.CurrentActor).Returns(new Actor(Guid.NewGuid(), "?", "1234", "?"));

            var target = new JwtAuthenticationMiddleware(identity, actorContext.Object);

            // Act
            await target.Invoke(mockedFunctionContext, _ => Task.CompletedTask).ConfigureAwait(false);

            // Assert
            Assert.Equal("1234", identity.ActorId);
        }