예제 #1
0
        public void RetrievePage_WhenProvidedWithABadPage_ThrowsResourceNotFoundException(WireDataFormat format)
        {
            var client     = TestContext.CreateClientNoCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var exception = Assert.Throws <ResourceNotFoundException>(() => pageClient.Retrieve(Guid.NewGuid().ToString()));

            Assert.IsInstanceOf <ResourceNotFoundException>(exception);
        }
예제 #2
0
        public void IsPageShortNameRegistered_WhenSuppliedKnownExistingPage_ReturnsTrue(WireDataFormat format)
        {
            var client     = TestContext.CreateClientInvalidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var exists = pageClient.IsPageShortNameRegistered("rasha25");

            Assert.IsTrue(exists);
        }
예제 #3
0
        public void RetrieveDonationsForPage_WhenProvidedWithAKnownPageAndRequesterIsAnon_ReturnsDonations(WireDataFormat format)
        {
            var client     = TestContext.CreateClientNoCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var pageData = pageClient.RetrieveDonationsForPage("rasha25");

            Assert.That(pageData.Donations.Count, Is.GreaterThan(0));
        }
예제 #4
0
        public void IsPageShortNameRegistered_WhenSuppliedPageNameUnlikelyToExist_ReturnsFalse(WireDataFormat format)
        {
            var client     = TestContext.CreateClientInvalidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var exists = pageClient.IsPageShortNameRegistered(Guid.NewGuid().ToString());

            Assert.IsFalse(exists);
        }
예제 #5
0
        public void UploadImage_WhenProvidedVaildCredentialsAndInvalidPage_ThrowsException(WireDataFormat format)
        {
            var client     = TestContext.CreateClientValidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var exception = Assert.Throws <ErrorResponseException>(() => pageClient.UploadImage(Guid.NewGuid().ToString(), "my image", File.ReadAllBytes("jpg.jpg"), "image/jpeg"));

            Assert.That(exception.Response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
        }
예제 #6
0
        public void IsPageShortNameRegistered_WhenSuppliedUnknownDomain_ThrowsException(WireDataFormat format)
        {
            var          client        = TestContext.CreateClientInvalidCredentials(format);
            var          pageClient    = new PageApi(client.HttpChannel);
            const string unknownDomain = "unknownDomain.justgiving.com";

            var exception = Assert.Throws <ErrorResponseException>(() => pageClient.IsPageShortNameRegistered("rasha25", unknownDomain));

            Assert.That(exception.Response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
예제 #7
0
        public void SuggestPageShortNames_SuppliedDesiredName_ReturnsSuggestions(WireDataFormat format)
        {
            var          client      = TestContext.CreateClientValidCredentials(format);
            var          pageClient  = new PageApi(client.HttpChannel);
            const string desiredName = "david";

            var suggestion = pageClient.SuggestPageShortNames(desiredName);

            Assert.That(suggestion.Names.Length, Is.GreaterThan(0));
        }
예제 #8
0
        public void RetrieveVideosForPage_WhenProvidedWithAKnownPageAndRequesterIsAnon_ReturnsVideos(WireDataFormat format)
        {
            var client     = TestContext.CreateClientNoCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            var pageData = pageClient.GetVideos(new GetFundraisingPageVideosRequest()
            {
                PageShortName = "rasha25"
            });

            Assert.That(pageData.Count, Is.GreaterThan(0));
        }
예제 #9
0
        public void RetrivePage_WhenProvidedShortName_ReturnsNotEmptyCollectionOfTeams(WireDataFormat format)
        {
            //arrange
            var client     = TestContext.CreateClientNoCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            //act
            var result = pageClient.Retrieve("my-test-890");

            //assert
            Assert.IsNotEmpty(result.Teams);
        }
예제 #10
0
        public void IsPageShortNameRegistered_WhenSuppliedPageNameUnlikelyToExistOnNonDefaultDomain_ReturnsFalse(WireDataFormat format)
        {
            //arrange
            var client     = TestContext.CreateClientInvalidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            //act
            var exists = pageClient.IsPageShortNameRegistered("rasha25", TestConfigurationsHelper.GetProperty <ITestConfigurations, string>(x => x.RflDomain));

            //assert
            Assert.IsFalse(exists);
        }
예제 #11
0
        public void PageUpdates_ReturnPageUpdates(WireDataFormat format)
        {
            //arrange
            var          client = TestContext.CreateClientNoCredentials(format);
            var          fundraisingResources = new PageApi(client.HttpChannel);
            const string validPageShortName   = "my-test-8901";
            //act
            var result = fundraisingResources.PageUpdates(validPageShortName);

            //assert
            Assert.IsNotNull(result);
        }
예제 #12
0
        public void ListPages_WhenProvidedCredentials_ReturnsPages(WireDataFormat format)
        {
            //arrange
            var client     = TestContext.CreateClientValidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            //act
            var result = pageClient.ListAll();

            //assert
            Assert.That(result.Count, Is.GreaterThan(0));
        }
예제 #13
0
        public void CancelPage_WhileSupportedValidCredentials_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientValidCredentials(format);
            var fundraisingResources     = new PageApi(client.HttpChannel);
            var validRegisterPageRequest = ValidRegisterPageRequest();

            fundraisingResources.Create(validRegisterPageRequest);

            //act
            var result = fundraisingResources.CancelPage(validRegisterPageRequest.PageShortName);

            //assert
            Assert.IsTrue(result);
        }
예제 #14
0
        public void PageUpdatesAddPost_WhileSupportedValidCredentialsAndValidRequest_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientValidCredentials(format);
            var fundraisingResource      = new PageApi(client.HttpChannel);
            var validUpdateRequest       = ValidUpdateRequest();
            var validRegisterPageRequest = ValidRegisterPageRequest();
            var resultOfRegisterPage     = fundraisingResource.Create(validRegisterPageRequest);

            //act
            var result = fundraisingResource.PageUpdatesAddPost(validRegisterPageRequest.PageShortName,
                                                                validUpdateRequest);

            //assert
            Assert.IsTrue(result);
        }
예제 #15
0
        public void RetrieveDonationsForPageByReference_WhileSuppliedCorrectReference_ReturnDonations(
            WireDataFormat format)
        {
            //arrange
            var          client = TestContext.CreateClientNoCredentials(format);
            var          fundraisinResources = new PageApi(client.HttpChannel);
            const string validPageShortName  = "";
            const string validReference      = "";

            //act
            var result = fundraisinResources.RetrieveDonationsForPageByReference(validPageShortName, validReference);

            //assert
            Assert.IsNotNull(result);
            CollectionAssert.IsNotEmpty(result.Donations);
        }
예제 #16
0
        public void AddFundraisingPageImage_WhenCredentialsValidAndRequestValid_ReturnsSuccessful(WireDataFormat format)
        {
            //arrange
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageCreationRequest = ValidRegisterPageRequest();

            pageClient.Create(pageCreationRequest);
            var validAddImageRequest = ValidAddFundraisingPageImageRequest(pageCreationRequest.PageShortName);

            //act
            var result = pageClient.AddImage(validAddImageRequest);

            //assert
            Assert.IsNotNullOrEmpty(result.Next.Rel);
        }
예제 #17
0
        public void RetrievePageSmsCode_WhenProvidedKnownFundraisingPage_ReturnSmsCode(WireDataFormat format)
        {
            //arrange
            var client               = TestContext.CreateClientValidCredentials(format);
            var smsResources         = new SmsApi(client.HttpChannel);
            var fundraisingResources = new PageApi(client.HttpChannel);
            var validRegisterRequest = ValidRegisterPageRequest();

            fundraisingResources.Create(validRegisterRequest);

            //act
            var result = smsResources.RetrievePageSmsCode(validRegisterRequest.PageShortName);

            //assert
            Assert.IsNotNullOrEmpty(result.Urn);
        }
예제 #18
0
        public void FundraisingPageAttribution_WhileSupportedValidCredentials_ReturnFundraisingPageAttribution(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientValidCredentials(format);
            var fundraisingResources     = new PageApi(client.HttpChannel);
            var validRegisterPageRequest = ValidRegisterPageRequest();
            var createdPage            = fundraisingResources.Create(validRegisterPageRequest);
            var validRequest           = ValidAppendFundraisingPageAttributionRequest();
            var appendAttributeRequest =
                fundraisingResources.AppendToFundraisingPageAttribution(validRegisterPageRequest.PageShortName,
                                                                        validRequest);
            //act
            var result = fundraisingResources.FundraisingPageAttribution(validRegisterPageRequest.PageShortName);

            //assert
            Assert.IsNotNullOrEmpty(result.Attribution);
        }
예제 #19
0
        public void Create_ValidEvent_ReturnsEventRegistrationResponse(WireDataFormat format)
        {
            //arrange
            var client                   = TestContext.CreateClientValidCredentials(format);
            var teamResources            = new TeamApi(client.HttpChannel);
            var fundraiseResources       = new PageApi(client.HttpChannel);
            var validRegisterPageRequest = ValidRegisterPageRequest();
            var validRequest             = ValidTeamRequest(validRegisterPageRequest.PageShortName);

            fundraiseResources.Create(validRegisterPageRequest);

            //act
            var result = teamResources.CreateOrUpdate(validRequest);

            //assert
            Assert.That(result.Id, Is.Not.EqualTo(0));
        }
예제 #20
0
        public void Register_SuppliedValidAuthenticationAndValidRegisterPageRequestWithNewRememberedPersonDetails_CanRetrievePageWithRememberedPersonData(WireDataFormat format)
        {
            var guid          = Guid.NewGuid();
            var client        = TestContext.CreateClientValidCredentials(format);
            var pageClient    = new PageApi(client.HttpChannel);
            var pageShortName = "api-test-" + guid;

            var firstName = "FirstName-api-test";
            var lastName  = string.Format("Last-{0}", guid);

            string inMemNameAttribution = String.Format("{0} {1}{2}", firstName, lastName, guid).Trim();

            var rememberedPersonReference = new RememberedPersonReference
            {
                Relationship     = "Other",
                RememberedPerson = new RememberedPerson
                {
                    FirstName   = firstName,
                    LastName    = lastName,
                    Gender      = Gender.Male.ToString(),
                    Town        = String.Format("town-{0}", guid),
                    DateOfBirth = DateTime.Now.AddYears(-50),
                    DateOfDeath = DateTime.Now.AddDays(-1),
                }
            };

            var pageCreationRequest = new RegisterPageRequest
            {
                ActivityType              = ActivityType.InMemory,
                Attribution               = inMemNameAttribution,
                PageShortName             = pageShortName,
                PageTitle                 = "api test InMem Name",
                EventName                 = "The InMem ApiTest",
                CharityId                 = 2050,
                TargetAmount              = 20M,
                EventDate                 = DateTime.Now.AddDays(5),
                RememberedPersonReference = rememberedPersonReference,
            };

            pageClient.Create(pageCreationRequest);
            FundraisingPage page = pageClient.Retrieve(pageShortName);

            Assert.NotNull(page.RememberedPersonSummary.Name);
            Assert.That(page.RememberedPersonSummary.Next.Uri, Is.StringContaining(String.Format("remember/{0}", page.RememberedPersonSummary.Id)));
        }
예제 #21
0
        public void Can_Create_Page_For_Event_Using_Event_Reference(WireDataFormat format)
        {
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageShortName       = "api-test-" + Guid.NewGuid();
            var pageCreationRequest = new RegisterPageRequest
            {
                ActivityType  = null,
                PageShortName = pageShortName,
                PageTitle     = "When Provided With Valid Authentication Details And An Empty Activity Type - Creates New Page",
                EventName     = "The Other Occasion of ApTest and APITest",
                CharityId     = 2050,
                TargetAmount  = 20M,
                EventDate     = DateTime.Now.AddDays(5)
            };

            pageClient.Create("341_RFL2010", pageCreationRequest);
        }
예제 #22
0
        public void AddFundraisingPageVideo_WhenCredentialsValidAndRequestNotValid_ThrowsException(WireDataFormat format)
        {
            //arrange
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageCreationRequest = ValidRegisterPageRequest();

            pageClient.Create(pageCreationRequest);
            var addVideoRequest = new AddFundraisingPageVideoRequest {
                Url = "", Caption = "", PageShortName = pageCreationRequest.PageShortName
            };

            //act
            var response = Assert.Throws <ErrorResponseException>(() => pageClient.AddVideo(addVideoRequest));

            //arrange
            Assert.That(response.Response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
예제 #23
0
        public void AddFundraisingPageVideo_WhenCredentialsValidAndRequestValid_ReturnsSuccessful(WireDataFormat format)
        {
            //arrange
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageCreationRequest = ValidRegisterPageRequest();

            pageClient.Create(pageCreationRequest);
            var addVideoRequest = new AddFundraisingPageVideoRequest {
                Url = "http://www.youtube.com/watch?v=MSxjbF18BBM", Caption = "neckbrace", PageShortName = pageCreationRequest.PageShortName
            };

            //act
            var result = pageClient.AddVideo(addVideoRequest);

            //assert
            Assert.IsNotNullOrEmpty(result.Next.Rel);
        }
예제 #24
0
        public void Retrieve_AndATeamExists_ReturnsTeam(WireDataFormat format)
        {
            //arrange
            var client                   = TestContext.CreateClientValidCredentials(format);
            var teamResources            = new TeamApi(client.HttpChannel);
            var fundraiseResources       = new PageApi(client.HttpChannel);
            var validRegisterPageRequest = ValidRegisterPageRequest();

            fundraiseResources.Create(validRegisterPageRequest);
            var validRequest = ValidTeamRequest(validRegisterPageRequest.PageShortName);
            var response     = teamResources.CreateOrUpdate(validRequest);

            //act
            var result = teamResources.Retrieve(validRequest.TeamShortName);

            //assert
            Assert.That(result.Id, Is.EqualTo(response.Id));
        }
예제 #25
0
        public void RetrievePage_WhenProvidedWithAKnownPage_ReturnsPublicPageView(WireDataFormat format)
        {
            var client     = TestContext.CreateClientValidCredentials(format);
            var pageClient = new PageApi(client.HttpChannel);

            // Create Page
            var pageShortName       = "api-test-" + Guid.NewGuid();
            var pageCreationRequest = new RegisterPageRequest
            {
                ActivityType  = ActivityType.OtherCelebration,
                PageShortName = pageShortName,
                PageTitle     = "Page Created For Update Story Integration Test",
                EventName     = "Story Update Testing",
                CharityId     = 2050,
                TargetAmount  = 20M,
                EventDate     = DateTime.Now.AddDays(5),
                CustomCodes   =
                    new PageCustomCodes
                {
                    CustomCode1 = "code1",
                    CustomCode2 = "code2",
                    CustomCode3 = "code3",
                    CustomCode4 = "code4",
                    CustomCode5 = "code5",
                    CustomCode6 = "code6"
                }
            };

            pageClient.Create(pageCreationRequest);

            // Act
            var pageData = pageClient.Retrieve(pageShortName);

            Assert.NotNull(pageData);
            Assert.That(pageData.PageCreatorName, Is.Not.Empty);
            Assert.AreEqual(pageData.PageShortName, pageCreationRequest.PageShortName);
            Assert.AreEqual(pageData.PageTitle, pageCreationRequest.PageTitle);
            Assert.AreEqual(pageData.EventName, pageCreationRequest.EventName);
            Assert.AreEqual(pageData.TargetAmount, pageCreationRequest.TargetAmount);
            Assert.IsNotNullOrEmpty(pageData.SmsCode);
            Assert.That(pageData.TotalRaisedSms, Is.Not.Empty);
        }
예제 #26
0
        public void UpdatePageSmsCode_WhenProvidedValidRequestAndValidCredentials_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client               = TestContext.CreateClientValidCredentials(format);
            var smsResources         = new SmsApi(client.HttpChannel);
            var fundraisingResources = new PageApi(client.HttpChannel);
            var validRegisterRequest = ValidRegisterPageRequest();

            fundraisingResources.Create(validRegisterRequest);
            var randomSmsCodeToUpdate = GenerateRandomSmsCode();
            var validRequest          = new SmsApi.SmsUpdate {
                Urn = randomSmsCodeToUpdate
            };

            //act
            var result = smsResources.UpdatePageSmsCode(validRegisterRequest.PageShortName, validRequest);

            //assert
            Assert.IsTrue(result);
        }
예제 #27
0
        public void Register_WhenProvidedWithValidAuthenticationAndDetails_CreatesANewPage(WireDataFormat format)
        {
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageShortName       = "api-test-" + Guid.NewGuid();
            var pageCreationRequest = new RegisterPageRequest
            {
                ActivityType  = ActivityType.OtherCelebration,
                PageShortName = pageShortName,
                PageTitle     = "api test",
                EventName     = "The Other Occasion of ApTest and APITest",
                CharityId     = 2050,
                TargetAmount  = 20M,
                EventDate     = DateTime.Now.AddDays(5)
            };

            var registrationResponse = pageClient.Create(pageCreationRequest);

            Assert.That(registrationResponse.Next.Uri, Is.StringContaining(pageShortName));
        }
예제 #28
0
        public void DeletePageUpdate_WhileSupportedValidCredentials_ReturnTrue(WireDataFormat format)
        {
            //arrage
            var client = TestContext.CreateClientValidCredentials(format);
            var fundraisingResource      = new PageApi(client.HttpChannel);
            var validUpdateRequest       = ValidUpdateRequest();
            var validRegisterPageRequest = ValidRegisterPageRequest();

            fundraisingResource.Create(validRegisterPageRequest);
            fundraisingResource.PageUpdatesAddPost(validRegisterPageRequest.PageShortName,
                                                   validUpdateRequest);
            var pageUpdatesResult = fundraisingResource.PageUpdates(validRegisterPageRequest.PageShortName);
            var update            = pageUpdatesResult.First();

            //act
            var result = fundraisingResource.DeletePageUpdate(validRegisterPageRequest.PageShortName, update.Id.Value);

            //assert
            Assert.IsTrue(result);
        }
예제 #29
0
        public void Register_WhenProvidedWithValidAuthenticationAndDetailsAndAnEmptyActivityType_TheResponseContainsThePageId(WireDataFormat format)
        {
            var client              = TestContext.CreateClientValidCredentials(format);
            var pageClient          = new PageApi(client.HttpChannel);
            var pageShortName       = "api-test-" + Guid.NewGuid();
            var pageCreationRequest = new RegisterPageRequest
            {
                ActivityType  = null,
                PageShortName = pageShortName,
                PageTitle     = "api test",
                EventName     = "The Other Occasion of ApTest and APITest",
                CharityId     = 2050,
                EventId       = TestConfigurationsHelper.GetProperty <ITestConfigurations, int>(x => x.ValidEventId),
                TargetAmount  = 20M,
                EventDate     = DateTime.Now.AddDays(5)
            };

            var registrationResponse = pageClient.Create(pageCreationRequest);

            Assert.That(registrationResponse.PageId != 0);
        }
예제 #30
0
        public void UpdateFundraisingPageAttribution_WhileSupportedValidCredentialsAndValidRequest_ReturnTrue(WireDataFormat format)
        {
            //arrange
            var client = TestContext.CreateClientValidCredentials(format);
            var fundraisingResources     = new PageApi(client.HttpChannel);
            var validRegisterPageRequest = ValidRegisterPageRequest();

            fundraisingResources.Create(validRegisterPageRequest);
            var validAppendRequest = ValidAppendFundraisingPageAttributionRequest();

            fundraisingResources.AppendToFundraisingPageAttribution(validRegisterPageRequest.PageShortName,
                                                                    validAppendRequest);
            var validRequest = ValidUpdateFundraisingPageAttributionRequest();

            //act
            var result = fundraisingResources.UpdateFundraisingPageAttribution(validRegisterPageRequest.PageShortName,
                                                                               validRequest);

            //assert
            Assert.IsTrue(result);
        }