Пример #1
0
        private static async Task <string> PrepareExpectedResponseAsync(ICosmosStore <RoomForRentAnnouncementEntity> cosmosStore)
        {
            var roomForRentAnnouncementEntities = await cosmosStore.Query().ToListAsync();

            var getRoomForRentAnnouncementsCollectionItemResponses = roomForRentAnnouncementEntities.Select(
                roomForRentAnnouncementEntity => new RoomForRentAnnouncementResponse(
                    roomForRentAnnouncementEntity.Id,
                    roomForRentAnnouncementEntity.Title,
                    roomForRentAnnouncementEntity.SourceUrl,
                    roomForRentAnnouncementEntity.CityId,
                    roomForRentAnnouncementEntity.Created,
                    roomForRentAnnouncementEntity.Description,
                    roomForRentAnnouncementEntity.Price,
                    roomForRentAnnouncementEntity.RoomTypes.Select(x =>
                                                                   RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum(x.ConvertToEnumeration())),
                    roomForRentAnnouncementEntity.CityDistricts));
            var collectionResponse =
                new CollectionResponse <RoomForRentAnnouncementResponse>(roomForRentAnnouncementEntities.Count, getRoomForRentAnnouncementsCollectionItemResponses);
            var settings = new JsonSerializerSettings
            {
                Formatting       = Formatting.Indented,
                ContractResolver = new DefaultTestPlatformContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                },
                Converters = new List <JsonConverter> {
                    new IsoDateTimeConverter(), new StringEnumConverter()
                }
            };

            return(JsonConvert.SerializeObject(collectionResponse, settings));
        }
Пример #2
0
        public async Task Should_Update_RoomForRentAnnouncement_When_Requesting_By_Administrator_Client()
        {
            var roomForRentAnnouncementEntity = await InsertRoomForRentAnnouncementEntityAsync(_fixture.RoomForRentAnnouncementEntityCosmosStore);

            var updateRoomForRentAnnouncementRequest = new UpdateRoomForRentAnnouncementRequest
            {
                Id            = roomForRentAnnouncementEntity.Id,
                Title         = "UpdateRoomForRentAnnouncementNewName",
                SourceUrl     = roomForRentAnnouncementEntity.SourceUrl,
                CityId        = roomForRentAnnouncementEntity.CityId,
                Description   = roomForRentAnnouncementEntity.Description,
                Price         = roomForRentAnnouncementEntity.Price,
                RoomTypes     = roomForRentAnnouncementEntity.RoomTypes.Select(x => RoomForRentAnnouncementProfile.ConvertToRoomTypeEnum(x.ConvertToEnumeration())),
                CityDistricts = roomForRentAnnouncementEntity.CityDistricts
            };
            var updateRoomForRentAnnouncementRequestString = JsonConvert.SerializeObject(updateRoomForRentAnnouncementRequest);
            var requestContent = new StringContent(updateRoomForRentAnnouncementRequestString, Encoding.UTF8, "application/json");

            _fixture.AdministratorHttpClient.DefaultRequestHeaders.Add("api-version", "1");

            var response = await _fixture.AdministratorHttpClient.PutAsync($"api/roomForRentAnnouncements/{roomForRentAnnouncementEntity.Id}", requestContent);

            var responseContentString = await response.Content.ReadAsStringAsync();

            var expectedResponse = await PrepareExpectedResponseAsync(roomForRentAnnouncementEntity.Id,
                                                                      _fixture.RoomForRentAnnouncementEntityCosmosStore);

            response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.OK);
            responseContentString.Should().BeEquivalentTo(expectedResponse);
        }