Created
October 28, 2018 06:00
-
-
Save danielplawgo/da1e87f85c97113f9b78c9314125e2c0 to your computer and use it in GitHub Desktop.
Prywatna klasa?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static class ControllerExtensions | |
{ | |
public static string GetUserClaim(this ApiController controller, string claimName) | |
{ | |
var principal = controller.User as ClaimsPrincipal; | |
if (principal == null) | |
{ | |
return null; | |
} | |
var claim = principal.Claims.FirstOrDefault(c => c.Type == claimName); | |
if (claim == null) | |
{ | |
return null; | |
} | |
return claim.Value; | |
} | |
public static T GetUserClaim<T>(this ApiController controller, string claimName) | |
{ | |
var val = controller.GetUserClaim(claimName); | |
return (T)Convert.ChangeType( | |
val, | |
typeof(T) | |
); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ControllerExtensionsTest | |
{ | |
private string _claimName = "userId"; | |
private int _claimValue = 123; | |
private TestController Create() | |
{ | |
var controller = new TestController(); | |
controller.User = new ClaimsPrincipal(new ClaimsIdentity(new [] {new Claim(_claimName, _claimValue.ToString())})); | |
return controller; | |
} | |
[Fact] | |
public void GetUserClaim_Return_Null_When_User_Is_Null() | |
{ | |
var controller = Create(); | |
controller.User = null; | |
var claim = controller.GetUserClaim("claimName"); | |
claim.Should().BeNull(); | |
} | |
[Fact] | |
public void GetUserClaim_Return_Null_When_Claim_Does_Not_Exist() | |
{ | |
var controller = Create(); | |
var claim = controller.GetUserClaim("claimName"); | |
claim.Should().BeNull(); | |
} | |
[Fact] | |
public void GetUserClaim_Return_Claim() | |
{ | |
var controller = Create(); | |
var claim = controller.GetUserClaim(_claimName); | |
claim.Should().NotBeNull(); | |
claim.Should().Be(_claimValue.ToString()); | |
} | |
[Fact] | |
public void Generic_GetUserClaim_Return_Claim() | |
{ | |
var controller = Create(); | |
var claim = controller.GetUserClaim<int>(_claimName); | |
claim.Should().Be(_claimValue); | |
} | |
private class TestController : ApiController | |
{ | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class OuterClass | |
{ | |
private class InnerClass | |
{ | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private class PrivateClass | |
{ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment