En mi aplicación, tengo dos equivalentes enum
s. Uno vive en el DAL, el otro en la capa de contrato de servicio. Tienen el mismo nombre (pero están en diferentes espacios de nombres) y deben tener los mismos miembros y valores.Comparando dos tipos * de enum para la equivalencia?
Me gustaría escribir una prueba de unidad que haga cumplir esto. Hasta el momento, tengo la siguiente:
public static class EnumAssert
{
public static void AreEquivalent(Type x, Type y)
{
// Enum.GetNames and Enum.GetValues return arrays sorted by value.
string[] xNames = Enum.GetNames(x);
string[] yNames = Enum.GetNames(y);
Assert.AreEqual(xNames.Length, yNames.Length);
for (int i = 0; i < xNames.Length; i++)
{
Assert.AreEqual(xNames[i], yNames[i]);
}
// TODO: How to validate that the values match?
}
}
Esto funciona bien para comparar los nombres, pero ¿cómo puedo comprobar que los valores coinciden, así?
(estoy usando NUnit 2.4.6, pero esta cifra se aplica a cualquier marco de prueba de unidad)
Ah, probé Assert.AreEqual ((int) xValues [i], (int) yValues [i]) y no estaba teniendo nada de eso. –