Example #1
0
        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();
        }
Example #2
0
        public void OneTimeSetup()
        {
            VerifyMontebankRunning();

            MountebankClient = new MountebankClient();
            MountebankClient.DeleteImposter(8095);
        }
Example #3
0
        // 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();
        }
Example #4
0
        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);
        }
Example #5
0
 public static HttpImposter CreateOrReplaceHttpImposter(this MountebankClient client,
                                                        int port,
                                                        string name         = null,
                                                        bool recordRequests = false)
 {
     client.DeleteImposter(port);
     return(client.CreateHttpImposter(port, name, recordRequests));
 }
Example #6
0
 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"));
 }
Example #7
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        private void Start()
        {
            _client   = new MountebankClient();
            _handler += Handler;
            SetConsoleCtrlHandler(_handler, true);
            StartLateBoundServices();
            WriteLine();
            Write("Ready for requests...");
            ReadKey(false);

            while (!_exitSystem)
            {
                Thread.Sleep(500);
            }
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #14
0
 public CanGetImposter(MountebankClient client)
 {
     _client = client;
 }
Example #15
0
 public CanDeleteImposter(MountebankClient client)
 {
     _client = client;
 }
Example #16
0
 public CanVerifyCallsOnImposter(MountebankClient client)
 {
     _client = client;
 }
Example #17
0
 public CanGetImposter(MountebankClient client)
 {
     _client = client;
 }
Example #18
0
        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();
        }
Example #19
0
 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);
 }
Example #22
0
 private static void SetupTestEnvironment()
 {
     Client = new MountebankClient();
 }
 public CanVerifyCallsOnImposter(MountebankClient client)
 {
     _client = client;
 }
Example #24
0
 public CanCreateImposter(MountebankClient client)
 {
     _client = client;
 }
Example #25
0
 public static void CanNotGetImposterThatDoesNotExist(MountebankClient client) => new CanNotGetImposterThatDoesNotExist(client).Run();
Example #26
0
 public static void CanCreateHttpsImposter(MountebankClient client) => new CanCreateHttpsImposter(client).Run();
Example #27
0
 public CanDeleteImposter(MountebankClient client)
 {
     _client = client;
 }
 public CanCreateImposterTest(MountebankClient client)
 {
     _client = client;
 }
Example #29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LocalhostServerFixture"/> class.
 /// </summary>
 public LocalhostServerFixture()
 {
     this._client = new MountebankClient();
 }
Example #30
0
 public static void CanGetImposter(MountebankClient client) => new CanGetImposter(client).Run();
Example #31
0
 public static void CanVerifyCallsOnImposter(MountebankClient client) => new CanVerifyCallsOnImposter(client).Run();
Example #32
0
 public static void CanVerifyCallsOnImposter(MountebankClient client) => new CanVerifyCallsOnImposter(client).Run();
Example #33
0
 public static void CanNotGetImposterThatDoesNotExist(MountebankClient client) => new CanNotGetImposterThatDoesNotExist(client).Run();
Example #34
0
 public static void CanGetImposter(MountebankClient client) => new CanGetImposter(client).Run();
 public CanNotGetImposterThatDoesNotExist(MountebankClient client)
 {
     _client = client;
 }
Example #36
0
 public AcceptanceTestBase()
 {
     _client = new MountebankClient();
 }
Example #37
0
 private static void SetupTestEnvironment()
 {
     Client = new MountebankClient();
 }
Example #38
0
        public void InitializesImposterCollection()
        {
            var client = new MountebankClient();

            Assert.IsNotNull(client.Imposters);
        }
 public CanNotGetImposterThatDoesNotExist(MountebankClient client)
 {
     _client = client;
 }