public void Validate_WhenInteractionDefinesAProviderStateAndNoProviderStatesAreSupplied_ThrowsInvalidOperationException()
        {
            var pact = new ProviderServicePactFile
            {
                Consumer = new Party {
                    Name = "My client"
                },
                Provider = new Party {
                    Name = "My Provider"
                },
                Interactions = new List <ProviderServiceInteraction>
                {
                    new ProviderServiceInteraction
                    {
                        ProviderState = "My Provider State",
                        Description   = "My interaction"
                    }
                }
            };

            var mockProviderServiceResponseComparer = Substitute.For <IProviderServiceResponseComparer>();
            var fakeHttpClient = new FakeHttpClient();
            var mockHttpRequestMessageMapper      = Substitute.For <IHttpRequestMessageMapper>();
            var mockProviderServiceResponseMapper = Substitute.For <IProviderServiceResponseMapper>();

            var providerServiceValidator = new ProviderServiceValidator(
                mockProviderServiceResponseComparer,
                fakeHttpClient,
                mockHttpRequestMessageMapper,
                mockProviderServiceResponseMapper,
                new Reporter(new NoOpReportOutputter()));

            Assert.Throws <InvalidOperationException>(() => providerServiceValidator.Validate(pact, null));
        }
        public void Validate_WithInteractionsInPactFile_CallsValidateOnTheProviderServiceResponseValidator()
        {
            var pact = new ProviderServicePactFile
            {
                Consumer = new Party {
                    Name = "My client"
                },
                Provider = new Party {
                    Name = "My Provider"
                },
                Interactions = new List <ProviderServiceInteraction>
                {
                    new ProviderServiceInteraction
                    {
                        Description = "My interaction"
                    }
                }
            };
            var mockProviderServiceResponseComparer = Substitute.For <IProviderServiceResponseComparer>();
            var fakeHttpClient = new FakeHttpClient();
            var mockHttpRequestMessageMapper      = Substitute.For <IHttpRequestMessageMapper>();
            var mockProviderServiceResponseMapper = Substitute.For <IProviderServiceResponseMapper>();

            var providerServiceValidator = new ProviderServiceValidator(
                mockProviderServiceResponseComparer,
                fakeHttpClient,
                mockHttpRequestMessageMapper,
                mockProviderServiceResponseMapper,
                new Reporter(new NoOpReportOutputter()));

            providerServiceValidator.Validate(pact, null);

            mockProviderServiceResponseComparer.Received(1).Compare(Arg.Any <ProviderServiceResponse>(), Arg.Any <ProviderServiceResponse>());
        }
        public void Validate_WithNoInteractionsAndProviderStatesSetUpDefined_SetUpActionIsNotInvoked()
        {
            var actionInkoved = false;
            var pact          = new ProviderServicePactFile
            {
                Consumer = new Party {
                    Name = "My client"
                },
                Provider = new Party {
                    Name = "My Provider"
                },
                Interactions = null
            };
            var providerStates = new ProviderStates(setUp: () => { actionInkoved = true; }, tearDown: null);

            var mockProviderServiceResponseComparer = Substitute.For <IProviderServiceResponseComparer>();
            var fakeHttpClient = new FakeHttpClient();
            var mockHttpRequestMessageMapper      = Substitute.For <IHttpRequestMessageMapper>();
            var mockProviderServiceResponseMapper = Substitute.For <IProviderServiceResponseMapper>();

            var providerServiceValidator = new ProviderServiceValidator(
                mockProviderServiceResponseComparer,
                fakeHttpClient,
                mockHttpRequestMessageMapper,
                mockProviderServiceResponseMapper,
                new Reporter(new NoOpReportOutputter()));

            providerServiceValidator.Validate(pact, providerStates);

            Assert.False(actionInkoved, "Provider states pact setUp action is not invoked");
        }
        public void Validate_WithEmptyInteractionsInPactFile_DoesNotCallHttpClientOrAnyOfTheMappersOrValidators()
        {
            var pact = new ProviderServicePactFile
            {
                Consumer = new Party {
                    Name = "My client"
                },
                Provider = new Party {
                    Name = "My Provider"
                },
                Interactions = new List <ProviderServiceInteraction>()
            };
            var mockProviderServiceResponseComparer = Substitute.For <IProviderServiceResponseComparer>();
            var fakeHttpClient = new FakeHttpClient();
            var mockHttpRequestMessageMapper      = Substitute.For <IHttpRequestMessageMapper>();
            var mockProviderServiceResponseMapper = Substitute.For <IProviderServiceResponseMapper>();

            var providerServiceValidator = new ProviderServiceValidator(
                mockProviderServiceResponseComparer,
                fakeHttpClient,
                mockHttpRequestMessageMapper,
                mockProviderServiceResponseMapper,
                new Reporter(new NoOpReportOutputter()));

            providerServiceValidator.Validate(pact, null);
            Assert.Equal(0, fakeHttpClient.SendAsyncCallCount);
            mockProviderServiceResponseComparer.Received(0).Compare(Arg.Any <ProviderServiceResponse>(), Arg.Any <ProviderServiceResponse>());
            mockHttpRequestMessageMapper.Received(0).Convert(Arg.Any <ProviderServiceRequest>());
            mockProviderServiceResponseMapper.Received(0).Convert(Arg.Any <HttpResponseMessage>());
        }
Esempio n. 5
0
        public async Task CompareLocalPackageToFeedPackageShouldCorrectlyInterpretFeedResponse(
            string feedResponseContentName,
            HttpStatusCode feedResponseStatusCode,
            PackageFeedStatus expectedResult)
        {
            var localPackagePath  = TestInputs.GetFullPath(Path.Combine("Nupkgs", "test-package-a.zip"));
            var packageContentUrl = $"https://fakefeed.azure.com/nuget/v3/{feedResponseContentName}.nupkg";
            var taskLoggingHelper = new Microsoft.Build.Utilities.TaskLoggingHelper(new StubTask());
            var retryHandler      = new MockRetryHandler();

            var response = new HttpResponseMessage(feedResponseStatusCode);

            if (!string.IsNullOrEmpty(feedResponseContentName))
            {
                var content = TestInputs.ReadAllBytes(Path.Combine("Nupkgs", $"{feedResponseContentName}.zip"));
                response.Content = new ByteArrayContent(content);
            }
            ;

            var httpClient = FakeHttpClient.WithResponses(response);

            var result = await GeneralUtils.CompareLocalPackageToFeedPackage(
                localPackagePath,
                packageContentUrl,
                httpClient,
                taskLoggingHelper,
                retryHandler);

            result.Should().Be(expectedResult);
        }
Esempio n. 6
0
        [InlineData(HttpStatusCode.InternalServerError, 2)] // retry on 5xx
        public async Task CompareLocalPackageToFeedPackageShouldRetryFailedRequests(
            HttpStatusCode initialResponseStatusCode,
            int expectedAttemptCount)
        {
            var testPackageName   = Path.Combine("Nupkgs", "test-package-a.zip");
            var localPackagePath  = TestInputs.GetFullPath(testPackageName);
            var packageContentUrl = "https://fakefeed.azure.com/nuget/v3/test-package-a.zip";
            var taskLoggingHelper = new Microsoft.Build.Utilities.TaskLoggingHelper(new StubTask());

            var retryHandler = new MockRetryHandler(maxAttempts: 2);

            var responseContent = TestInputs.ReadAllBytes(testPackageName);
            var responses       = new[]
            {
                new HttpResponseMessage(initialResponseStatusCode)
                {
                    Content = new ByteArrayContent(responseContent)
                },
                new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(responseContent)
                }
            };

            var httpClient = FakeHttpClient.WithResponses(responses);

            await GeneralUtils.CompareLocalPackageToFeedPackage(
                localPackagePath,
                packageContentUrl,
                httpClient,
                taskLoggingHelper,
                retryHandler);

            retryHandler.ActualAttempts.Should().Be(expectedAttemptCount);
        }
        public async void TrolleyCalculator_Serialize_Deserialize()
        {
            // Arrange
            var expectedResult      = new decimal(1);
            var httpClient          = FakeHttpClient.Create_WithContent(expectedResult.ToString(CultureInfo.InvariantCulture));
            var trolleyTotalRequest = new TrolleyTotalRequest()
            {
                RequestedItems = new List <RequestedItem>()
                {
                    new RequestedItem()
                },
                Specials = new List <Special>()
                {
                    new Special()
                    {
                        Inventory = new List <SpecialInventory>()
                        {
                            new SpecialInventory()
                        }
                    }
                },
                Products = new List <Product>()
                {
                    new Product()
                }
            };
            var sut = new ResourceServiceHttpHttpClient(httpClient, _mockOptions);

            // Act
            var result = await sut.TrolleyCalculator(trolleyTotalRequest);

            //Assert
            Assert.Equal(expectedResult, result);
        }
Esempio n. 8
0
        public async Task ParseAndExecuteDeploymentTasks_Success()
        {
            var client = new FakeHttpClient();

            client.AddResponse("/network/networkDomain/d5791a6d-2b69-47e2-be06-f26a2ec4bff8", "NetworkDomain_Get.json");
            client.AddResponse("/network/vlan?networkDomainId=d5791a6d-2b69-47e2-be06-f26a2ec4bff8&name=Unit Test VLAN", "GenericNotFound.json");
            client.AddResponse("/network/deployVlan", "Vlan_Delpoy.json");
            client.AddResponse("/network/vlan/997e2084-00b1-4d1d-96ce-099946679c6f", "Vlan_Get.json");
            client.AddResponse("/imageWithDiskSpeed?name=RedHat 6 64-bit 2 CPU", "Image_Get.xml");
            client.AddResponse("/server/server?networkDomainId=d5791a6d-2b69-47e2-be06-f26a2ec4bff8&name=Unit Test Server", "GenericNotFound.json");
            client.AddResponse("/server/deployServer", "Server_Deploy.json");
            client.AddResponse("/server/server/b42b40e1-351a-4df9-b726-2ccff01f2767", "Server_Get.json");
            client.AddResponse("/network/addPublicIpBlock", "PublicIpBlock_Add.json");
            client.AddResponse("/network/publicIpBlock/996b066e-bdce-11e4-8c14-b8ca3a5d9ef8", "PublicIpBlock_Get.json");
            client.AddResponse("/network/natRule?networkDomainId=d5791a6d-2b69-47e2-be06-f26a2ec4bff8&internalIp=10.0.0.8", "GenericNotFound.json");
            client.AddResponse("/network/createNatRule", "NatRule_Create.json");
            client.AddResponse("/network/natRule/a6b2e743-e330-4deb-a76e-0d9cb0b1d1bb", "NatRule_Get.json");

            var templateFile   = Path.Combine(_resourceFolder, "StandardTemplate.json");
            var parametersFile = Path.Combine(_resourceFolder, "StandardTemplateParams.json");
            var taskBuilder    = new TaskBuilder();
            var taskExecutor   = taskBuilder.BuildTasksFromDeploymentTemplate(templateFile, parametersFile);
            var log            = await taskExecutor.Execute(_runtimeContext);

            Assert.AreEqual(DeploymentLogStatus.Success, log.Status);
            Assert.AreEqual("http://168.128.5.106/index.html", taskExecutor.Context.OutputParameters["ServerPublicUrl"]);
        }
        public async void GetShopperHistory_Serialize_Deserialize()
        {
            // Arrange
            var expectedShopperHistoryDto = new ShopperHistoryDto()
            {
                CustomerId = 123,
                Products   = new List <ShopperHistoryProductDto>()
                {
                    new ShopperHistoryProductDto()
                    {
                        Name     = "a",
                        Price    = 1,
                        Quantity = 2
                    }
                }
            };
            var httpClient = FakeHttpClient.Create_WithContent("[{\"customerId\": 123,\"products\": [{\"name\": \"a\",\"price\": 1,\"quantity\": 2}]}]");

            var sut = new ResourceServiceHttpHttpClient(httpClient, _mockOptions);

            // Act
            var result = await sut.GetShopperHistory();

            //Assert
            var shopperHistory = result.ToList();

            Assert.True(shopperHistory.Count.Equals(1));
            Assert.Equal(expectedShopperHistoryDto.CustomerId, shopperHistory.First().CustomerId);
            Assert.True(shopperHistory.First().Products.Count.Equals(1));
            Assert.Equal(expectedShopperHistoryDto.Products.First().Name, shopperHistory.First().Products.First().Name);
            Assert.Equal(expectedShopperHistoryDto.Products.First().Price, shopperHistory.First().Products.First().Price);
            Assert.Equal(expectedShopperHistoryDto.Products.First().Quantity, shopperHistory.First().Products.First().Quantity);
        }
Esempio n. 10
0
        public async Task WhenGettingTheServerElasticubes_ShouldReturnThemWithTheCorrectInformation()
        {
            // Arrange
            IHttpClient    httpClient    = new FakeHttpClient(responseMessageToReturn: CreateResponse());
            IAuthenticator authenticator = new FakeAuthenticator();
            var            service       = new ElastiCubesService("", httpClient, authenticator);

            // Act
            var result = await service.GetElastiCubesByServerAsync("myserver");

            // Assert
            Assert.Equal(2, result.Count());
            Assert.Equal("9ef5aa670a32e20ae046c83f", result.First().Id);
            Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1491905885118), result.First().CreatedUtc);
            Assert.Equal("clients", result.First().DatabaseName);
            Assert.Equal(DateTimeOffset.FromUnixTimeMilliseconds(1525312805480), result.First().LastBuiltUtc);
            Assert.Equal(1, result.First().PermissionsSummary);
            Assert.Equal(2.3436, result.First().SizeInMb);
            Assert.Equal(ElastiCubeStatus.Stopped, result.First().Status);
            Assert.Equal("clients", result.First().Title);
            Assert.Null(result.First().Error);

            Assert.False(result.First().Shares.First().BelongsToEveryoneGroup);
            Assert.Equal("5422c7343cd8fa3410000001", result.First().Shares.First().PartyId);
            Assert.Equal("w", result.First().Shares.First().Permission);
            Assert.Equal("user", result.First().Shares.First().Type);
        }
Esempio n. 11
0
        public void DownloadFileAsyncSucceedsForValidUrl()
        {
            var buildEngine = new MockBuildEngine();
            var publishTask = new PublishArtifactsInManifestV3
            {
                BuildEngine = buildEngine,
            };

            var testFile        = Path.Combine("Symbols", "test.txt");
            var responseContent = TestInputs.ReadAllBytes(testFile);
            var response        = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(responseContent)
            };

            using HttpClient client = FakeHttpClient.WithResponses(response);
            var path = TestInputs.GetFullPath(Guid.NewGuid().ToString());

            var test = publishTask.DownloadFileAsync(
                client,
                PublishArtifactsInManifestBase.ArtifactName.BlobArtifacts,
                "1234",
                "test.txt",
                path);

            Assert.True(File.Exists(path));
            publishTask.DeleteTemporaryFiles(path);
            publishTask.DeleteTemporaryDirectory(path);
        }
Esempio n. 12
0
        public async Task ErrorContentOnErrorJson()
        {
            var message   = FakeHttpClient.MessageResponse(HttpStatusCode.InsufficientStorage, "Throttled");
            var exception = await Assert.ThrowsAsync <MeetupException>(() => message.AsObject <object>(MeetupClient.SetupOptions(null, null)));

            Assert.Single(exception.Errors);
        }
Esempio n. 13
0
 public void ConfigureFakeHttpClient(FakeHttpClient fakeHttpClient)
 {
     fakeHttpClient.UpdateResource(new FakeHttpResource(RecentFeedUri, RecentFeedResource));
     fakeHttpClient.UpdateResource(new FakeHttpResource(Page1Uri, Archive1Resource));
     fakeHttpClient.UpdateResource(new FakeHttpResource(Page2Uri, Archive2Resource));
     fakeHttpClient.UpdateResource(new FakeHttpResource(Page3Uri, RecentFeedResource));
 }
Esempio n. 14
0
        public ProvisioningProfileProviderTests()
        {
            _helpersMock = new Mock <IHelpers>();
            _helpersMock
            .Setup(x => x.DirectoryMutexExec(It.IsAny <Func <System.Threading.Tasks.Task> >(), It.IsAny <string>()))
            .Callback <Func <System.Threading.Tasks.Task>, string>((function, path) => {
                ++_downloadCount;
                function().GetAwaiter().GetResult();
            });

            _fileSystem = new MockFileSystem();

            var response1 = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent("iOS content"),
            };

            var response2 = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent("tvOS content"),
            };

            var httpClient = FakeHttpClient.WithResponses(response1, response2);

            _profileProvider = new ProvisioningProfileProvider(
                new TaskLoggingHelper(new MockBuildEngine(), nameof(ProvisioningProfileProviderTests)),
                _helpersMock.Object,
                _fileSystem,
                httpClient,
                "https://netcorenativeassets.azure.com/profiles/{PLATFORM}.mobileprovision",
                "/tmp");
        }
Esempio n. 15
0
        public async Task FindTopicCategoriesUsesDataCorrectly()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertResponse("TopicCategory")
            };

            var meetup = MeetupClient.WithApiToken("TestToken", options);
            var topics = await meetup.Topics.FindCategories();

            Assert.NotNull(topics.Data);
            Assert.Equal(3, topics.Data.Length);

            var topic = topics.Data.Skip(1).First();

            Assert.Equal("Tech", topic.Name);
            Assert.Equal("tech", topic.ShortName);
            Assert.Equal("Tech", topic.SortName);
            Assert.Equal(292, topic.Id);
            Assert.Single(topic.CategoryIds);
            Assert.NotNull(topic.Photo);

            Assert.Equal(450131949, topic.Photo.Id);
            Assert.Equal(MeetupPhotoType.Event, topic.Photo.Type);
            Assert.Equal("https://secure.meetupstatic.com/", topic.Photo.BaseUrl.ToString());
            Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/highres_450131949.jpeg", topic.Photo.HighRes.ToString());
            Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/600_450131949.jpeg", topic.Photo.Photo.ToString());
            Assert.Equal("https://secure.meetupstatic.com/photos/event/2/e/a/d/thumb_450131949.jpeg", topic.Photo.Thumb.ToString());
        }
Esempio n. 16
0
    protected void CreateHttpMocks(string responseContents)
    {
        httpMessageHandlerMock = FakeHttpClient.CreateHttpMessageHandler(responseContents);

        HttpClient = httpMessageHandlerMock.ToHttpClient();

        Mock.Get(HttpClientFactory).Setup(c => c.CreateClient()).Returns(HttpClient);
    }
Esempio n. 17
0
 public async Task GetWithFieldsGeneratesCorrectUrl()
 {
     var options = new MeetupClientOptions
     {
         Client = FakeHttpClient.AssertUrl("/tech-nottingham?fields=plain_text_no_images_description")
     };
     var meetup = MeetupClient.WithApiToken("testToken", options);
     await meetup.Groups.Get("tech-nottingham", new [] { "plain_text_no_images_description" });
 }
Esempio n. 18
0
 public async Task GetGeneratesCorrectUrl()
 {
     var options = new MeetupClientOptions
     {
         Client = FakeHttpClient.AssertUrl("/tech-nottingham")
     };
     var meetup = MeetupClient.WithApiToken("testToken", options);
     await meetup.Groups.Get("tech-nottingham");
 }
    public void Initialize()
    {
        var httpClientFactory = Mock.Of <IHttpClientFactory>();
        var httpClient        = FakeHttpClient.CreateWithResponse(response);

        Mock.Get(httpClientFactory).Setup(c => c.CreateClient()).Returns(() => httpClient);

        dbProvider = new TestableDbProviderForExplain(TestParameters.KsqlDBUrl, httpClientFactory);
    }
        public override void TestInitialize()
        {
            base.TestInitialize();

            HttpClientFactory = Mock.Of <IHttpClientFactory>();
            HttpClient        = FakeHttpClient.CreateWithResponse(StatementResponse);

            Mock.Get(HttpClientFactory).Setup(c => c.CreateClient()).Returns(HttpClient);
        }
Esempio n. 21
0
        public void Should_use_custom_http_client()
        {
            var fakeRequestCoordinator = A.Fake <IRequestCoordinator>();
            var fakeHttpClient         = new FakeHttpClient();

            new FluentApi <Status>(fakeRequestCoordinator).UsingClient(fakeHttpClient);

            Assert.That(fakeRequestCoordinator.HttpClient, Is.EqualTo(fakeHttpClient));
        }
		public void Should_use_custom_http_client()
		{
			var fakeRequestCoordinator = A.Fake<IRequestCoordinator>();
			var fakeHttpClient = new FakeHttpClient();

			new FluentApi<Status>(fakeRequestCoordinator).UsingClient(fakeHttpClient);

			Assert.That(fakeRequestCoordinator.HttpClient, Is.EqualTo(fakeHttpClient));
		}
Esempio n. 23
0
        public async Task FakeHttpClient_AllowsRulesWithStaticReturnValue()
        {
            var fakeClient = new FakeHttpClient();
            fakeClient.AddRule(OkResponse);

            var response200 = await fakeClient.GetAsync("http://www.404.com");

            Assert.AreEqual(HttpStatusCode.OK, response200.StatusCode);
        }
        public void Validate_WithTwoInteractionsAndProviderStateSetupAndTearDownDefined_SetUpIsInvokedBeforeCompareAndTearDownIsInvokedAfterCompare()
        {
            const string providerState1 = "My Provider State";
            const string providerState2 = "My Provider State 2";

            const string setUpSuffix    = "-SetUp";
            const string tearDownSuffix = "-TearDown";

            var actionInvocationLog = new List <string>();
            var pact = new ProviderServicePactFile
            {
                Consumer = new Party {
                    Name = "My client"
                },
                Provider = new Party {
                    Name = "My Provider"
                },
                Interactions = new List <ProviderServiceInteraction>
                {
                    new ProviderServiceInteraction
                    {
                        ProviderState = providerState1,
                        Description   = "My interaction"
                    },
                    new ProviderServiceInteraction
                    {
                        ProviderState = providerState2,
                        Description   = "My interaction"
                    },
                }
            };
            var providerStates = new ProviderStates();

            providerStates.Add(new ProviderState(providerState1, setUp: () => actionInvocationLog.Add(providerState1 + setUpSuffix), tearDown: () => actionInvocationLog.Add(providerState1 + tearDownSuffix)));
            providerStates.Add(new ProviderState(providerState2, setUp: () => actionInvocationLog.Add(providerState2 + setUpSuffix), tearDown: () => actionInvocationLog.Add(providerState2 + tearDownSuffix)));

            var mockProviderServiceResponseComparer = Substitute.For <IProviderServiceResponseComparer>();
            var fakeHttpClient = new FakeHttpClient();
            var mockHttpRequestMessageMapper      = Substitute.For <IHttpRequestMessageMapper>();
            var mockProviderServiceResponseMapper = Substitute.For <IProviderServiceResponseMapper>();

            var providerServiceValidator = new ProviderServiceValidator(
                mockProviderServiceResponseComparer,
                fakeHttpClient,
                mockHttpRequestMessageMapper,
                mockProviderServiceResponseMapper,
                new Reporter(new NoOpReportOutputter()));

            providerServiceValidator.Validate(pact, providerStates);

            Assert.Equal(4, actionInvocationLog.Count());
            Assert.Equal(providerState1 + setUpSuffix, actionInvocationLog.First());
            Assert.Equal(providerState1 + tearDownSuffix, actionInvocationLog.Skip(1).First());
            Assert.Equal(providerState2 + setUpSuffix, actionInvocationLog.Skip(2).First());
            Assert.Equal(providerState2 + tearDownSuffix, actionInvocationLog.Last());
        }
Esempio n. 25
0
        public async Task CreateForGeneratesCorrectUrl()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertUrl("/tech-nottingham/venues?fields=taglist", System.Net.Http.HttpMethod.Post)
            };

            var meetup = MeetupClient.WithApiToken("testToken", options);
            await meetup.Venues.CreateFor("tech-nottingham", new Venue());
        }
Esempio n. 26
0
        public async Task ForGroupGeneratesCorrectUrl()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertUrl("/tech-nottingham/venues?fields=taglist")
            };

            var meetup = MeetupClient.WithApiToken("testToken", options);
            await meetup.Venues.For("tech-nottingham");
        }
Esempio n. 27
0
        public async Task RecommendedVenueEmptyGeneratesCorrectUrl()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertUrl("/recommended/venues?fields=taglist")
            };

            var meetup = MeetupClient.WithApiToken("testToken", options);
            await meetup.Venues.Recommended();
        }
Esempio n. 28
0
        public async Task FindTopicThrowsIfQueryIsEmpty()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertUrl("/find/topics?photo-host=public&query=tech")
            };

            var meetup = MeetupClient.WithApiToken("testToken", options);
            await Assert.ThrowsAsync <ArgumentNullException>(() => meetup.Topics.Find(string.Empty));
        }
Esempio n. 29
0
        public async Task ErrorContentOnClientReturningError()
        {
            var message  = FakeHttpClient.MessageResponse(HttpStatusCode.InsufficientStorage, "Throttled");
            var client   = new HttpClient(new ActionMessageHandler(req => message));
            var response = await client.GetAsync("https://test.com");

            var exception = await Assert.ThrowsAsync <MeetupException>(() => response.AsObject <object>(MeetupClient.SetupOptions(null, null)));

            Assert.Single(exception.Errors);
        }
Esempio n. 30
0
        public async Task FindTopicUsesCorrectUrl()
        {
            var options = new MeetupClientOptions
            {
                Client = FakeHttpClient.AssertUrl("/find/topics?photo-host=public&query=tech")
            };

            var meetup = MeetupClient.WithApiToken("testToken", options);
            await meetup.Topics.Find("tech");
        }
Esempio n. 31
0
 public async Task StatusCreatesCorrectCall()
 {
     var client   = FakeHttpClient.AssertUrl("/status");
     var defaults = new MeetupClientOptions
     {
         Client = client
     };
     var meetup = new MeetupClient(defaults);
     await meetup.Meta.Status();
 }
Esempio n. 32
0
        public async Task ServerImage_SubstituteTokensInString_NotFound()
        {
            var client = new FakeHttpClient();

            client.AddResponse("/oec/0.9/base/imageWithDiskSpeed?name=RedHat 6 64-bit 2 CPU", "Image_Get_NotFound.xml");

            var macro = new ImageMacro();
            var input = "$serverImage['NA9', 'RedHat 6 64-bit 2 CPU']";
            await macro.SubstituteTokensInString(_runtimeContext, null, input);
        }
Esempio n. 33
0
        public async Task ShouldReturnCurrentFizzBuzzValue()
        {
            var client = new FakeHttpClient();

            client.SetupGet("", new FizzBuzz(54));

            var model = await new FizzBuzz(client: client).GetCurrent();

            Assert.Equal(54, model.Value);
        }
Esempio n. 34
0
        public async Task FakeHttpClient_KeepsRequestHistory()
        {
            var fakeClient = new FakeHttpClient();
            fakeClient.AddRule(OkResponse);

            var response404 = await fakeClient.GetAsync("http://www.404.com");
            var response200 = await fakeClient.GetAsync("http://www.200.com");

            Assert.AreEqual(2, fakeClient.History.Count);
        }
Esempio n. 35
0
        public async Task FakeHttpClient_AllowsRulesWithConditionalReturnValue()
        {
            var fakeClient = new FakeHttpClient();

            fakeClient.AddRule(req => req.RequestUri.Host == "www.404.com" ? NotFound : OkResponse);

            var response404 = await fakeClient.GetAsync("http://www.404.com");
            var response200 = await fakeClient.GetAsync("http://www.200.com");

            Assert.AreEqual(HttpStatusCode.NotFound, response404.StatusCode);
            Assert.AreEqual(HttpStatusCode.OK, response200.StatusCode);
        }
Esempio n. 36
0
        public async Task FakeHttpClient_AllowsRulesWithUnconditionalReturnValue()
        {
            var fakeClient = new FakeHttpClient();

            fakeClient.AddRule(r => r.RequestUri.Host == "www.200.com", OkResponse);
            fakeClient.AddRule(r => r.RequestUri.Host == "www.500.com", ErrorResponse);
            fakeClient.AddRule(r => r.RequestUri.Host == "www.404.com", NotFound);

            var response404 = await fakeClient.GetAsync("http://www.404.com");
            var response200 = await fakeClient.GetAsync("http://www.200.com");
            var response500 = await fakeClient.GetAsync("http://www.500.com");

            Assert.AreEqual(HttpStatusCode.NotFound, response404.StatusCode);
            Assert.AreEqual(HttpStatusCode.OK, response200.StatusCode);
            Assert.AreEqual(HttpStatusCode.InternalServerError, response500.StatusCode);
        }
        public void Should_throw_if_http_error()
        {
            var projectionName = Guid.NewGuid().ToString();
            var projectionContent = Guid.NewGuid().ToString();

            var response = new HttpResponse(HttpStatusCode.InternalServerError, String.Empty, String.Empty);

            var httpClient = new FakeHttpClient(u => response, (u, d) => response, (u, d) => response);
            var counter = new CountdownEvent(1);
            httpClient.SetCounter(counter);

            var manager = new ProjectionsManager(EventStoreAddress, httpClient);

            manager.GetConfigAsync(projectionName);

            Assert.IsTrue(counter.Wait(3000));
        }
        public void Should_update_existing_projection()
        {
            var projectionName = Guid.NewGuid().ToString();
            var projectionContent = Guid.NewGuid().ToString();

            var httpClient = new FakeHttpClient(u => new HttpResponse(HttpStatusCode.OK, String.Empty, String.Empty), null, null);
            var manager = new ProjectionsManager(EventStoreAddress, httpClient);

            var counter = new CountdownEvent(1);
            httpClient.SetCounter(counter);

            manager.UpdateProjectionQueryAsync(projectionName, projectionContent);

            Assert.IsTrue(counter.Wait(3000));

            CollectionAssert.IsEmpty(httpClient.PostRequests);
            CollectionAssert.IsEmpty(httpClient.GetRequests);
            CollectionAssert.IsNotEmpty(httpClient.PutRequests);

            StringAssert.Contains(projectionName, httpClient.PutRequests[0].Url);
        }
		public void Should_return_xmlnode_if_valid_xml_received_using_async()
		{
			var fakeClient = new FakeHttpClient(new Response
				{
					StatusCode = HttpStatusCode.OK,
					Body = SERVICE_STATUS
				});

			var endpointResolver = new RequestCoordinator(fakeClient, _urlSigner, EssentialDependencyCheck<IOAuthCredentials>.Instance, EssentialDependencyCheck<IApiUri>.Instance);

			var reset = new AutoResetEvent(false);

			string response = string.Empty;
			endpointResolver.HitEndpointAsync(new EndPointInfo(),
			 s =>
				 {
					 response = s.Body;
					 reset.Set();
				 });

			reset.WaitOne(1000 * 5);
			var payload = new XmlDocument();
			payload.LoadXml(response);

			Assert.That(payload.HasChildNodes);
			Assert.That(payload.SelectSingleNode("//serverTime"), Is.Not.Null);
		}
Esempio n. 40
0
 public void ConfigureFakeHttpClient(FakeHttpClient fakeHttpClient)
 {
     fakeHttpClient.UpdateResource(new FakeHttpResource(RecentFeedUri, RecentFeedResource));
 }
Esempio n. 41
0
 public async Task FakeHttpClient_ThrowsExceptionWhenFakeReturnsNull()
 {
     var fakeClient = new FakeHttpClient();
     fakeClient.AddRule(r => null);
     var response = await fakeClient.GetAsync("http://www.test.com");
 }
Esempio n. 42
0
 public async Task FakeHttpClient_ThrowsExceptionWhenFakeIsNotSetup()
 {
     var fakeClient = new FakeHttpClient();
     var response = await fakeClient.GetAsync("http://www.test.com");
 }