public void Should_Throw_Exception_If_Resolver_Fails_Unexpected() { // Arrange _firstResolver.Setup(r => r.GetTenantToken()).Throws <Exception>(); var sut = new TenantIdentificationStrategy(new List <ITenantTokenResolver>() { _firstResolver.Object, _secondResolver.Object, _thirdResolver.Object }, _identifier.Object); // Act Action act = () => Task.WaitAll(sut.TryGetTenantIdAsync()); // Assert act.Should().Throw <Exception>(); }
public void Strategy_Should_Pass_Token_To_Identifier() { // Arrange const string tenantToken = "mock token"; _firstResolver.Setup(r => r.GetTenantToken()).Returns(Task.FromResult(tenantToken)); var sut = new TenantIdentificationStrategy(new List <ITenantTokenResolver>() { _firstResolver.Object, _secondResolver.Object, _thirdResolver.Object }, _identifier.Object); // Act var _ = sut.TryGetTenantIdAsync().Result; // Assert _identifier.Verify(i => i.GetTenantIdAsync(It.Is <string>(s => string.Equals(s, tenantToken))), Times.Once()); }
public void Should_Return_Null_If_All_Resolvers_Fail() { // Arrange _firstResolver.Setup(r => r.GetTenantToken()).Returns(Task.FromResult <string>(null)); _secondResolver.Setup(r => r.GetTenantToken()).Returns(Task.FromResult <string>(null)); _thirdResolver.Setup(r => r.GetTenantToken()).Returns(Task.FromResult <string>(null)); var sut = new TenantIdentificationStrategy(new List <ITenantTokenResolver>() { _firstResolver.Object, _secondResolver.Object, _thirdResolver.Object }, _identifier.Object); // Act var result = sut.TryGetTenantIdAsync().Result; // Assert result.Should().BeNull(); }
public void Service_Should_Return_Identifier_Result() { // Arrange const string tenantToken = "mock token"; _firstResolver.Setup(r => r.GetTenantToken()).Returns(Task.FromResult(tenantToken)); var tenantId = Guid.NewGuid(); _identifier.Setup(i => i.GetTenantIdAsync(It.IsAny <string>())).Returns(Task.FromResult(tenantId)); var sut = new TenantIdentificationStrategy(new List <ITenantTokenResolver>() { _firstResolver.Object, _secondResolver.Object, _thirdResolver.Object }, _identifier.Object); // Act var result = sut.TryGetTenantIdAsync().Result; // Assert result.Should().Be(tenantId); }