Пример #1
0
        public async Task cannot_put_existing_activity_profile_when_etag_is_invalid()
        {
            // Arrange
            var state = new ActivityProfileDocument <string>()
            {
                Content = "foo",
                ETag    = ETAG
            };
            var request = PutActivityProfileRequest.Create(state);

            request.ActivityId = new Uri(ACTIVITY_ID);
            request.ProfileId  = PROFILE_ID;
            this._mockHttp
            .When(HttpMethod.Put, this.GetApiUrl("activities/profile"))
            .WithQueryString("activityId", ACTIVITY_ID)
            .WithQueryString("profileId", PROFILE_ID)
            .WithHeaders("If-Match", ETAG)
            .Respond(HttpStatusCode.PreconditionFailed);

            // Act
            bool result = await this._client.ActivityProfiles.Put(request);

            // Assert
            result.Should().BeFalse();
        }
Пример #2
0
        async Task <bool> IActivityProfilesApi.Put <T>(PutActivityProfileRequest <T> request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            request.Validate();

            var options = new RequestOptions(ENDPOINT);

            this.CompleteOptions(options, request);

            try
            {
                await this._client.PutJson(options, request.ActivityProfile);

                return(true);
            }
            catch (PreConditionFailedException)
            {
                return(false);
            }
        }
Пример #3
0
        public async Task can_put_new_activity_profile()
        {
            // Arrange
            var state = new ActivityProfileDocument <string>()
            {
                Content = "foo"
            };
            var request = PutActivityProfileRequest.Create(state);

            request.ActivityId = new Uri(ACTIVITY_ID);
            request.ProfileId  = PROFILE_ID;
            this._mockHttp
            .When(HttpMethod.Put, this.GetApiUrl("activities/profile"))
            .WithQueryString("activityId", ACTIVITY_ID)
            .WithQueryString("profileId", PROFILE_ID)
            .WithHeaders("If-None-Match", "*")
            .Respond(HttpStatusCode.NoContent);

            // Act
            bool result = await this._client.ActivityProfiles.Put(request);

            // Assert
            result.Should().BeTrue();
        }
Пример #4
0
 private void CompleteOptions <T>(RequestOptions options, PutActivityProfileRequest <T> request)
 {
     this.CompleteOptionsBase(options, request);
     this.AddETagHeader(options, request.ActivityProfile.ETag);
 }