Как протестировать метод webapi odata патча с Delta <Tentity>, который имеет некоторые свойства коллекции - PullRequest
0 голосов
/ 20 ноября 2018

Мне нужно протестировать следующий метод Patch в моем тестовом проекте.

    public async Task<IHttpActionResult> PatchMarkAsReadAlertResults([FromODataUri] Guid key, Delta<MarkAsReadAlertResult> result)
    {
        await AlertResultsHelper.UpdateAlertResultStatus(key, result.GetEntity(), alertResultsActionsServiceProvider, KeyEvent);
        return Updated(result);
    }

Я написал свои тестовые примеры, подобные этому

    [TestMethod]
    public async Task AlertProfileMarkAsReadAlertResultsTest()
    {
        #region Arrange
        Guid key = Guid.Parse("e6f940d5-2ffb-4ff3-b7c1-04aa2514a37e");

        var alerts = new MarkAsReadAlertResult();

        var results = new Delta<MarkAsReadAlertResult>();

        alerts.ResultIds = new List<string>();


        alerts.ResultIds.Add("906433381");

        results.TrySetPropertyValue("ResultIds", alerts);

        IHttpActionResult result = null;
        #endregion

        #region Act
        result = await this.alertProfilesController.PatchMarkAsReadAlertResults(key, results);
        #endregion

        #region  Assert
        Assert.IsNotNull(result);
        #endregion
    }

Получаю здесь ошибку ссылки на объект

results.TrySetPropertyValue ("ResultIds", оповещения);

Не знаете, почему я это получаю, если я что-то упустил?

Я проверил это Проверка метода webapi Patch odata , но это не для списка строк.

1 Ответ

0 голосов
/ 24 ноября 2018

Я обнаружил ошибку, которую сделал.Вместо установки одного свойства я отправляю весь объект.

Старый код

results.TrySetPropertyValue("ResultIds", alerts);

Обновленный код

results.TrySetPropertyValue("ResultIds", alerts.ResultIds);
...