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); }); }
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)); }
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 }); }
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)); }
/// <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)); }); }
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); }); }
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)); }