/ / Converti stringhe di validazione modelstate in array di oggetti - c #, asp.net-mvc, mbunit

Converti stringhe di convalida modelstate in array di oggetti - c #, asp.net-mvc, mbunit

Ancora a disagio con tutti gli enumerabili là fuori. Sto cercando di fare questo:

 Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, null, Enumerable.ToArray<object>(actionResult.ViewData.ModelState as IEnumerable<object>));

È un'asserzione mbUnit con la seguente firma.

public static void IsTrue(bool actualValue, string messageFormat, params object[] messageArgs);

Cause dei terzi parametri (tradotto in inglese)

Sistema.ArgumentNullException: il valore non può essere nullo. Nome del parametro: sorgente at System.Linq.Enumerable.ToArray [TSource] (sorgente IEnumerable`1) at Coin.UnitTests.AccountControllerTests.MyTest () in D: ... TestsMbUnitTestsControllerTests.cs: riga 85

a Gallio. Come si fa?

A proposito, qualcuno sa come ottenere questi messaggi in inglese? Vista è in svedese.

risposte:

2 per risposta № 1

ModelState non implementa IEnumerable<T> quindi il cast finisce per essere nullo e Enumerable.ToArray() non gli piacciono i null, quindi l'eccezione.

Prova qualcosa del genere:

var errors = actionResult.ViewData.ModelState.Errors.Select(e => e.ErrorMessage).ToArray();
Assert.IsTrue(actionResult.ViewData.ModelState.IsValid, string.Join("n", errors));