/// <summary> /// Create a new connection for the user /// </summary> /// <param name="userid">Id of the user to create the connection to</param> /// <param name="connectionToCreate">The connection object to create</param> /// <returns>The created connection</returns> public async Task <Contracts.Connection.Connection> CreateConnectionForUser(Guid userid, Contracts.Connection.ConnectionCreation connectionToCreate) { // First make sure that the connection is ok var connectionTest = _mapper.Map <Contracts.Connection.ConnectionTest>(connectionToCreate); var testResult = TestConnection(connectionTest); if (!testResult.AccountIds.Contains(connectionToCreate.ExternalAccountId)) { throw new ProblemDetailsException( System.Net.HttpStatusCode.BadRequest, $"The account id '{connectionToCreate.ExternalAccountId}' doesn't exist in the connection." ); } // If it is then // 1. Save the connection to the DB var connectionToDb = _mapper.Map <Database.Connection.Connection>(connectionToCreate); connectionToDb.Type = testResult.Type; connectionToDb.Owner = GetUserFromDb(userid); _dbContext.Add(connectionToDb); _dbContext.SaveChanges(); // 2. Save to token to keyvault await _connectionsSecretService.CreateConnectionSecret(connectionToDb.Id, connectionToCreate.Secret); // Return created connection return(_mapper.Map <Contracts.Connection.Connection>(connectionToDb)); }
public async void CreateConnectionSecret() { // Arrange var connectionId = Guid.NewGuid(); var connectionSecretKey = $"ConnectionSecret-{connectionId}"; var connectionSecretValue = "TopSecret"; _secretClientMock.Setup(sc => sc.SetSecretAsync(connectionSecretKey, connectionSecretValue, It.IsAny <CancellationToken>())); // Act await _connectionsSecretService.CreateConnectionSecret(connectionId, connectionSecretValue); // Assert _secretClientMock.Verify(sc => sc.SetSecretAsync(connectionSecretKey, connectionSecretValue, It.IsAny <CancellationToken>()), Times.Once()); }
public async void CreateConnectionSecret() { // Arrange var connectionId = Guid.NewGuid(); var connectionSecretKey = $"ConnectionSecret-{connectionId}"; var connectionSecretValue = "TopSecret"; _cachingServiceMock.Setup(cs => cs.GetOrCreateValueAsync(connectionSecretKey, It.IsAny <Func <string> >(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(connectionSecretValue)); // Act await _connectionsSecretService.CreateConnectionSecret(connectionId, connectionSecretValue); // Assert _cachingServiceMock.Verify(cs => cs.GetOrCreateValueAsync(connectionSecretKey, It.IsAny <Func <string> >(), It.IsAny <CancellationToken>()), Times.Once()); }