示例#1
0
            public async Task GivenValidRequest_CreatesLicense()
            {
                // Arrange
                SetStandardBearerToken();

                var userId = Guid.NewGuid();

                var request = new CreateLicenseRequest
                {
                    UserId = userId
                };

                var user = new UserEntity
                {
                    Id = userId
                };

                await _userCollecion.InsertOneAsync(user);

                // Act
                var response = await HttpClient.PostAsJsonAsync(_url, request);

                // Assert
                var responseData = await response.Content.ReadFromJsonAsync <CreatedLicenseResponse>();

                var license = await _licenseCollection
                              .Find(x => x.Id == responseData.LicenseId)
                              .FirstOrDefaultAsync();

                Assert.Multiple(() =>
                {
                    AssertCreatedLicenseResponse(responseData);
                    AssertCreatedLicense(license, request);
                });
            }
示例#2
0
            public async Task GivenNoBearerToken_RespondsWithUnauthorized()
            {
                // Arrange
                var request = new CreateLicenseRequest();

                // Act
                var response = await HttpClient.PostAsJsonAsync(_url, request);

                // Assert
                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized));
            }
示例#3
0
        public async Task <IActionResult> CreateLicenseAsync(
            [FromBody] CreateLicenseRequest createLicense, ApiVersion version, CancellationToken token)
        {
            var createdLicense = await _licenseInstructor.CreateAsync(createLicense.ToDto(), token);

            var routeValues = new
            {
                version   = version.ToString(),
                licenseId = createdLicense.LicenseId
            };

            return(CreatedAtAction(nameof(GetLicenseIdAsync), routeValues, createdLicense));
        }
        public static CreateLicenseDto ToDto(this CreateLicenseRequest createLicense)
        {
            if (!createLicense.UserId.HasValue)
            {
                throw new MappingException(
                          $"No UserId Value for License",
                          ExceptionMessages.Mapping.Failed);
            }

            return(new CreateLicenseDto
            {
                UserId = createLicense.UserId.Value
            });
        }
示例#5
0
            public async Task GivenInvalidRole_RespondsWithForbidden()
            {
                // Arrange
                var bearerToken = new TestBearerTokenBuilder().Build();
                var request     = new CreateLicenseRequest();

                HttpClient.SetBearerToken(bearerToken);

                // Act
                var response = await HttpClient.PostAsJsonAsync(_url, request);

                // Assert
                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Forbidden));
            }
示例#6
0
        /// <summary>
        /// 本接口用来生成DRM方案对应的播放许可证,开发者需提供DRM方案类型、内容类型参数,后台将生成许可证后返回许可证数据
        /// 开发者需要转发终端设备发出的许可证请求信息。
        /// </summary>
        /// <param name="req"><see cref="CreateLicenseRequest"/></param>
        /// <returns><see cref="CreateLicenseResponse"/></returns>
        public CreateLicenseResponse CreateLicenseSync(CreateLicenseRequest req)
        {
            JsonResponseModel <CreateLicenseResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "CreateLicense");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <CreateLicenseResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
            public void GivenNoUserIdValue_ShouldThrowSubmarineMappingException()
            {
                // Arrange
                var request = new CreateLicenseRequest();

                // Act & Assert
                Assert.Multiple(() =>
                {
                    var exception = Assert.Throws <MappingException>(() => request.ToDto());

                    Assert.That(exception.ExceptionCode, Is.EqualTo((int)ExceptionCode.MappingException));
                    Assert.That(exception.TechnicalMessage, Is.Not.Null);
                    Assert.That(exception.UserMessage, Is.EqualTo(ExceptionMessages.Mapping.Failed));
                });
            }
            public void GivenValidRequest_ShouldReturnDto()
            {
                // Arrange
                var request = new CreateLicenseRequest
                {
                    UserId = Guid.NewGuid()
                };

                // Act
                var result = request.ToDto();

                // Assert
                Assert.Multiple(() =>
                {
                    Assert.That(result.UserId, Is.EqualTo(request.UserId));
                });
            }
示例#9
0
            public async Task GivenNoUserId_RespondsWithBadRequestAndModelState()
            {
                // Arrange
                SetStandardBearerToken();

                var request = new CreateLicenseRequest();

                // Act
                var response = await HttpClient.PostAsJsonAsync(_url, request);

                // Assert
                var responseData = await response.Content.ReadFromJsonAsync <ValidationResponse>();

                Assert.Multiple(() =>
                {
                    Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
                    DiagnoseaAssert.Contains(responseData.Errors, nameof(CreateLicenseRequest.UserId), ExceptionMessages.Interchange.Required);
                });
            }
示例#10
0
 private static void AssertCreatedLicense(LicenseEntity license, CreateLicenseRequest request)
 {
     DiagnoseaAssert.That(license.Created, Is.EqualTo(DateTime.UtcNow));
     Assert.That(BCrypt.Net.BCrypt.Verify(request.UserId.ToString(), license.Key));
     Assert.That(license.UserId, Is.EqualTo(request.UserId));
 }