3530ba3205
* Fix resharper code issues for language usage opportunities * Fix resharper code issues for common practices and code improvements * Fix resharper code issues for potential code quality issues * Fix resharper code issues for redundancies in code * Fix xunit test output * Update changelog * Fix resharper code issues for compiler warnings * Fix resharper code issues for inconsistent naming * Add resharper solution settings file * Fix resharper code issues for potential code quality issues * Fix resharper code issues for redundancies in code * Fix resharper code issues for redundancies in symbol declarations
56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
// Copyright 2016-2020, Pulumi Corporation
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Pulumirpc;
|
|
|
|
namespace Pulumi.Testing
|
|
{
|
|
internal class MockEngine : IEngine
|
|
{
|
|
private string? _rootResourceUrn;
|
|
private readonly object _rootResourceUrnLock = new object();
|
|
|
|
public readonly List<string> Errors = new List<string>();
|
|
|
|
public Task LogAsync(LogRequest request)
|
|
{
|
|
if (request.Severity == LogSeverity.Error)
|
|
{
|
|
lock (this.Errors)
|
|
{
|
|
this.Errors.Add(request.Message);
|
|
}
|
|
}
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public Task<SetRootResourceResponse> SetRootResourceAsync(SetRootResourceRequest request)
|
|
{
|
|
lock (_rootResourceUrnLock)
|
|
{
|
|
if (_rootResourceUrn != null && _rootResourceUrn != request.Urn)
|
|
throw new InvalidOperationException(
|
|
$"An invalid attempt to set the root resource to {request.Urn} while it's already set to {_rootResourceUrn}");
|
|
|
|
_rootResourceUrn = request.Urn;
|
|
}
|
|
|
|
return Task.FromResult(new SetRootResourceResponse());
|
|
}
|
|
|
|
public Task<GetRootResourceResponse> GetRootResourceAsync(GetRootResourceRequest request)
|
|
{
|
|
lock (_rootResourceUrnLock)
|
|
{
|
|
if (_rootResourceUrn == null)
|
|
throw new InvalidOperationException("Root resource is not set");
|
|
|
|
return Task.FromResult(new GetRootResourceResponse {Urn = _rootResourceUrn});
|
|
}
|
|
}
|
|
}
|
|
}
|