public async Task GetExternalEntitlement_UnknownApplication() { var userUid = Guid.NewGuid(); var customerUid = Guid.NewGuid(); var request = new ExternalEntitlementRequestModel { OrganizationIdentifier = customerUid.ToString(), UserEmail = "*****@*****.**", ApplicationName = "dummy" }; var mockFeature = "some feature"; var mockSku = "some sku"; mockConfigStore.Setup(c => c.GetValueBool(ConfigConstants.ENABLE_ENTITLEMENTS_CONFIG_KEY, false)).Returns(true); mockConfigStore.Setup(c => c.GetValueString(ConfigConstants.ENTITLEMENTS_FEATURE_CONFIG_KEY, "FEA-CEC-WORKSOS")).Returns(mockFeature); mockConfigStore.Setup(c => c.GetValueString(ConfigConstants.ENTITLEMENTS_SKU_CONFIG_KEY, "HCC-WOS-MO")).Returns(mockSku); var controller = CreateEntitlementsController(userUid.ToString()); var result = await controller.GetEntitlementExternal(request); Assert.NotNull(result); var response = result as BadRequestObjectResult; Assert.NotNull(response); Assert.Equal(400, response.StatusCode); Assert.Equal($"Unknown application {request.ApplicationName}", response.Value); }
public async Task <IActionResult> GetEntitlementExternal([FromBody] ExternalEntitlementRequestModel request) { Logger.LogInformation($"External Entitlement Request: {JsonConvert.SerializeObject(request)}"); if (request == null) { return(BadRequest()); } LoadFeaturesAndSkus(); (var feature, var sku) = MapApplicationToFeature(request.ApplicationName); if (string.IsNullOrEmpty(feature) || string.IsNullOrEmpty(sku)) { return(BadRequest($"Unknown application {request.ApplicationName}")); } return(await GetEntitlementInternal(new EntitlementRequestModel { OrganizationIdentifier = request.OrganizationIdentifier, Feature = feature, Sku = sku, UserEmail = request.UserEmail, UserUid = User.Identity.Name })); }
public async Task GetExternalEntitlement_Success() { var userUid = Guid.NewGuid(); var customerUid = Guid.NewGuid(); var request = new ExternalEntitlementRequestModel { OrganizationIdentifier = customerUid.ToString(), UserEmail = "*****@*****.**", ApplicationName = "worksos" }; var mockFeature = "some feature"; var mockSku = "some sku"; mockConfigStore.Setup(c => c.GetValueBool(ConfigConstants.ENABLE_ENTITLEMENTS_CONFIG_KEY, false)).Returns(true); mockConfigStore.Setup(c => c.GetValueString(ConfigConstants.ENTITLEMENTS_FEATURE_CONFIG_KEY, "FEA-CEC-WORKSOS")).Returns(mockFeature); mockConfigStore.Setup(c => c.GetValueString(ConfigConstants.ENTITLEMENTS_SKU_CONFIG_KEY, "HCC-WOS-MO")).Returns(mockSku); mockEmsClient.Setup(e => e.GetEntitlements(userUid, customerUid, mockSku, mockFeature, It.IsAny <IHeaderDictionary>())).ReturnsAsync(HttpStatusCode.OK); mockAuthn.Setup(a => a.GetApplicationBearerToken()).Returns("some token"); var controller = CreateEntitlementsController(userUid.ToString()); var result = await controller.GetEntitlementExternal(request); Assert.NotNull(result); var response = (result as JsonResult)?.Value as EntitlementResponseModel; Assert.NotNull(response); Assert.Equal(request.OrganizationIdentifier, response.OrganizationIdentifier); Assert.Equal(userUid.ToString(), response.UserUid); Assert.Equal(request.UserEmail, response.UserEmail); Assert.Equal(mockSku, response.Sku); Assert.Equal(mockFeature, response.Feature); Assert.True(response.IsEntitled); }