private static async Task Main() { var client = new MountebankClient(); var imposter = client.CreateHttpImposter(7777); var usd = new TestObj { Key = "usd", Rate = 36.96 }; var euro = new TestObj { Key = "eur", Rate = 44.88 }; var yen = new TestObj { Key = "yen", Rate = 1.36 }; imposter.AddStub().ReturnsJson(OK, usd) .OnPathAndMethodEqual($"/rate/{usd.Key}", Method.Get); imposter.AddStub().ReturnsJson(OK, euro) .OnPathAndMethodEqual($"/rate/{euro.Key}", Method.Get); imposter.AddStub().ReturnsJson(OK, yen) .OnPathAndMethodEqual($"/rate/{yen.Key}", Method.Get); imposter.AddStub().ReturnsStatus(BadRequest); client.Submit(imposter); await Request("usd"); await Request("eur"); await Request("yen"); await Request("rub"); client.DeleteAllImposters(); }
public void OneTimeSetup() { VerifyMontebankRunning(); MountebankClient = new MountebankClient(); MountebankClient.DeleteImposter(8095); }
// private readonly HttpClient _httpClient = new HttpClient(); static async System.Threading.Tasks.Task Main(string[] args) { var client = new MountebankClient(); var imposter = client.CreateHttpImposter(8070); var usdcoin = new Coin { Key = "usd", Rate = 22.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, usdcoin).OnPathAndMethodEqual($"/rate/{usdcoin.Key}", Method.Get); var rubcoin = new Coin { Key = "rub", Rate = 5.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, rubcoin).OnPathAndMethodEqual($"/rate/{rubcoin.Key}", Method.Get); var eurcoin = new Coin { Key = "eur", Rate = 25.22m }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, eurcoin).OnPathAndMethodEqual($"/rate/{eurcoin.Key}", Method.Get); imposter.AddStub().ReturnsStatus(HttpStatusCode.BadRequest); client.Submit(imposter); await GetRequest("usd"); await GetRequest("rub"); await GetRequest("eur"); await GetRequest("yuan"); client.DeleteAllImposters(); }
public void MakeTranslateApi() { var mounteBankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNTEBANK_HOST")); var uri = new Uri(Environment.GetEnvironmentVariable("TRANSLATE_API_HOST")); var translateApiPort = uri.Port; var imposter = mounteBankClient.CreateHttpImposter(translateApiPort); var transelationResponse = new { success = new { total = 1 }, contents = new { translated = "Its nature is to store up electricity. Forests\\nwhere aeries of pikachu liveth art dangerous, \\nsince the trees art so oft did strike by lightning.", text = "Its nature is to store up electricity. Forests\\nwhere nests of Pikachu live are dangerous,\\nsince the trees are so often struck by lightning.", translation = "shakespeare" } }; imposter.AddStub().ReturnsJson(HttpStatusCode.OK, transelationResponse) .OnPathAndMethodEqual("/translate/shakespeare.json", Method.Post); mounteBankClient.Submit(imposter); }
public static HttpImposter CreateOrReplaceHttpImposter(this MountebankClient client, int port, string name = null, bool recordRequests = false) { client.DeleteImposter(port); return(client.CreateHttpImposter(port, name, recordRequests)); }
public EndpointTestContext(WebApplicationFactory <Startup> appFactory) { this._appFactory = appFactory; this.Client = this._appFactory.CreateDefaultClient(); this.DBOptions = new DbContextOptionsBuilder <DataStoreDbContext>() .UseMySQL(Environment.GetEnvironmentVariable("MYSQL_CONNECTION_STRING")).Options; this.Request = new HttpRequestMessage(); this.BankServiceUri = new Uri(Environment.GetEnvironmentVariable("BANK_SERVICE_URL")); this._mountebankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNT_BANK_URL")); }
public void TearDownCache() { var uri = new Uri(Environment.GetEnvironmentVariable("REDIS_HOST")); ConnectionMultiplexer redis = ConnectionMultiplexer.Connect($"{uri.Host}:{uri.Port},allowAdmin=true"); IServer server = redis.GetServer(uri.Host, uri.Port); server.FlushDatabase(); var mounteBankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNTEBANK_HOST")); mounteBankClient.DeleteAllImposters(); }
public MountebankTests() { _httpClient = new HttpClient { BaseAddress = _localhostUri }; _mountebankClient = new MountebankClient(); _mountebankClient.DeleteAllImposters(); _imposter = _mountebankClient.CreateHttpImposter(_port); }
public void MakePokemonApi(string pokemonName) { var mounteBankClient = new MountebankClient(Environment.GetEnvironmentVariable("MOUNTEBANK_HOST")); var uri = new Uri(Environment.GetEnvironmentVariable("POKEMON_API_HOST")); var pokemonApiPort = uri.Port; var imposter = mounteBankClient.CreateHttpImposter(pokemonApiPort); var pokemonDetailResponse = GeneratePokemonSpeciesDetailsResponseBody(); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, pokemonDetailResponse).OnPathEquals($"/api/v2/pokemon-species/{pokemonName}"); mounteBankClient.Submit(imposter); }
private void Start() { _client = new MountebankClient(); _handler += Handler; SetConsoleCtrlHandler(_handler, true); StartLateBoundServices(); WriteLine(); Write("Ready for requests..."); ReadKey(false); while (!_exitSystem) { Thread.Sleep(500); } }
public static void Impersonate <T>( this MountebankClient theClient, string mockFriendlyName, string path, int port, MbDotNet.Enums.Method httpMethod, HttpStatusCode returnCode, T returnBody) { HttpImposter imposter = theClient.CreateOrReplaceHttpImposter(port, mockFriendlyName); imposter.AddStub() .OnPathAndMethodEqual(path, httpMethod) .ReturnsJson(returnCode, returnBody); theClient.Submit(imposter); }
public void Setup() { var client = new MountebankClient(); const int port = 8080; client.DeleteImposter(port); var imposter = client.CreateHttpImposter(port); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 72.4).OnPathAndMethodEqual($"/rate/usd", Method.Get); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 89.9).OnPathAndMethodEqual($"/rate/eur", Method.Get); imposter.AddStub().ReturnsJson(HttpStatusCode.OK, 1).OnPathAndMethodEqual($"/rate/rub", Method.Get); imposter.AddStub().ReturnsStatus(HttpStatusCode.BadRequest); client.Submit(imposter); }
public static void AddRecordedCommand(VirtSqlRpcModel model) { _recordedCommands.AddOrUpdate(model.StoredProcName, s => new List <VirtSqlRpcModel> { model }, (s, list) => { list.Add(model); return(list); }); var mountebankClient = new MountebankClient(); mountebankClient.DeleteImposter(1234); var imposter = mountebankClient.CreateHttpImposter(1234, "test"); foreach (var virtRecordedCommand in _recordedCommands) { var stub = imposter.AddStub(); var predicateFields = new HttpPredicateFields { Path = virtRecordedCommand.Key, }; var containsPredicate = new ContainsPredicate <HttpPredicateFields>(predicateFields); foreach (var response in virtRecordedCommand.Value) { stub .On(containsPredicate) .ReturnsJson(HttpStatusCode.OK, response); } } mountebankClient.Submit(imposter); }
public CanGetImposter(MountebankClient client) { _client = client; }
public CanDeleteImposter(MountebankClient client) { _client = client; }
public CanVerifyCallsOnImposter(MountebankClient client) { _client = client; }
private static void Main(string[] args) { Console.WriteLine("Test Harness."); MountebankClient = new MountebankClient(); for (int i = 1; i < 5; i = i + 1) { int input = int.Parse(Console.ReadLine()); HttpStatusCode errorCode = (HttpStatusCode)input; switch (errorCode) { case HttpStatusCode.InternalServerError: MountebankClient.Impersonate( "Magento - Create cart Failure", "/V1/guest-carts", 5101, Method.Post, errorCode, new { message = "Magento is down" } ); break; case HttpStatusCode.NotFound: MountebankClient.Impersonate( "Magento - Create cart Failure - NotFound", "/V1/guest-carts", 5101, Method.Post, errorCode, new { message = "Request does not match any route." } ); break; case HttpStatusCode.Forbidden: MountebankClient.Impersonate( "Magento - Create cart Failure - Forbidden", "/V1/guest-carts", 5101, Method.Post, errorCode, new { message = "No access." } ); break; case HttpStatusCode.BadRequest: MountebankClient.Impersonate( "Magento - Create cart Failure - Bad request", "/V1/guest-carts", 5101, Method.Post, errorCode, new { message = "Invalid Magento Request" } ); break; } } Console.ReadKey(); }
public static void CanCreateImposter(MountebankClient client) => new CanCreateImposterTest(client).Run();
public CanCreateHttpsImposter(MountebankClient client) { this._client = client; }
public void Constructor_InitializesImposterCollection() { var client = new MountebankClient(); Assert.IsNotNull(client.Imposters); }
private static void SetupTestEnvironment() { Client = new MountebankClient(); }
public CanCreateImposter(MountebankClient client) { _client = client; }
public static void CanNotGetImposterThatDoesNotExist(MountebankClient client) => new CanNotGetImposterThatDoesNotExist(client).Run();
public static void CanCreateHttpsImposter(MountebankClient client) => new CanCreateHttpsImposter(client).Run();
public CanCreateImposterTest(MountebankClient client) { _client = client; }
/// <summary> /// Initializes a new instance of the <see cref="LocalhostServerFixture"/> class. /// </summary> public LocalhostServerFixture() { this._client = new MountebankClient(); }
public static void CanGetImposter(MountebankClient client) => new CanGetImposter(client).Run();
public static void CanVerifyCallsOnImposter(MountebankClient client) => new CanVerifyCallsOnImposter(client).Run();
public CanNotGetImposterThatDoesNotExist(MountebankClient client) { _client = client; }
public AcceptanceTestBase() { _client = new MountebankClient(); }
public void InitializesImposterCollection() { var client = new MountebankClient(); Assert.IsNotNull(client.Imposters); }