コード例 #1
0
        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);
        }
コード例 #2
0
        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
            }));
        }
コード例 #3
0
        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);
        }