public void ExtractExchangeRatesTooLongDataLength() { List <string> contents = new List <string>() { "6", "AUD;CHF;0.9661", "JPY;KRW;13.1151", "EUR;CHF;1.2053", "AUD;JPY;86.0305", "EUR;USD;1.2989", "JPY;INR;0.6571", "EUR;ROU;79.2900" }; StreamReader streamReader = MockStreamReaderService.MockContentFile(string.Join("\n", contents)); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractExchangeRates", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "Number of exchange rates = 6", "Line n°9 is not empty : EUR;ROU;79.2900" }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractExchangeRatesInvalidFormatCount() { List <string> contents = new List <string>() { "INVALID", "AUD;CHF;0.9661", "JPY;KRW;13.1151", "EUR;CHF;1.2053", "AUD;JPY;86.0305", "EUR;USD;1.2989", "JPY;INR;0.6571" }; StreamReader streamReader = MockStreamReaderService.MockContentFile(string.Join("\n", contents)); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractExchangeRates", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "The number of exchange rates have an invalid format", "nbExRates = INVALID", "Error : Input string was not in a correct format." }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractExchangeRatesEmpty() { StreamReader streamReader = MockStreamReaderService.MockContentFile(""); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractExchangeRates", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); Assert.AreEqual(exception.InnerException.Message, "Second line is empty"); }
public void ExtractDataToConvertTrim() { StreamReader streamReader = MockStreamReaderService.MockContentFile(" EUR ;550 ; JPY "); DataToConvert dataToConvert = (DataToConvert)_privateType.InvokeStatic("ExtractDataToConvert", streamReader); Assert.AreEqual(dataToConvert.D1, "EUR"); Assert.AreEqual(dataToConvert.M, (uint)550); Assert.AreEqual(dataToConvert.D2, "JPY"); }
public void ExtractExchangeRatesTrim() { List <string> contents = new List <string>() { " 6 ", "AUD;CHF;0.9661", "JPY;KRW;13.1151", "EUR;CHF;1.2053", "AUD;JPY;86.0305", "EUR;USD;1.2989", "JPY;INR;0.6571" }; StreamReader streamReader = MockStreamReaderService.MockContentFile(string.Join("\n", contents)); ExchangeRate[] exchangeRates = (ExchangeRate[])_privateType.InvokeStatic("ExtractExchangeRates", streamReader); // AUD;CHF;0.9661 Assert.AreEqual(exchangeRates[0].DD, "AUD"); Assert.AreEqual(exchangeRates[0].DA, "CHF"); Assert.AreEqual(exchangeRates[0].T, (decimal)0.9661); // JPY;KRW;13.1151 Assert.AreEqual(exchangeRates[1].DD, "JPY"); Assert.AreEqual(exchangeRates[1].DA, "KRW"); Assert.AreEqual(exchangeRates[1].T, (decimal)13.1151); // EUR;CHF;1.2053 Assert.AreEqual(exchangeRates[2].DD, "EUR"); Assert.AreEqual(exchangeRates[2].DA, "CHF"); Assert.AreEqual(exchangeRates[2].T, (decimal)1.2053); // AUD;JPY;86.0305 Assert.AreEqual(exchangeRates[3].DD, "AUD"); Assert.AreEqual(exchangeRates[3].DA, "JPY"); Assert.AreEqual(exchangeRates[3].T, (decimal)86.0305); // EUR;USD;1.2989 Assert.AreEqual(exchangeRates[4].DD, "EUR"); Assert.AreEqual(exchangeRates[4].DA, "USD"); Assert.AreEqual(exchangeRates[4].T, (decimal)1.2989); // JPY;INR;0.6571 Assert.AreEqual(exchangeRates[5].DD, "JPY"); Assert.AreEqual(exchangeRates[5].DA, "INR"); Assert.AreEqual(exchangeRates[5].T, (decimal)0.6571); }
public void ExtractDataToConvertZeroAmount() { StreamReader streamReader = MockStreamReaderService.MockContentFile("EUR;0;JPY"); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractDataToConvert", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "The amount to convert (M) is zero", "Line = EUR;0;JPY" }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractDataToConvertInvalidFormatAmount() { StreamReader streamReader = MockStreamReaderService.MockContentFile("EUR;INVALID;JPY"); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractDataToConvert", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "The amount to convert (M) have an invalid format", "M = INVALID", "Error : Input string was not in a correct format." }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractDataToConvertNegativeAmount() { StreamReader streamReader = MockStreamReaderService.MockContentFile("EUR;-1;JPY"); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractDataToConvert", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "The amount to convert (M) have an invalid format", "M = -1", "Error : Value was either too large or too small for a UInt32." }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractDataToConvertTooLongD2Length() { StreamReader streamReader = MockStreamReaderService.MockContentFile("EUR;550;JAPY"); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractDataToConvert", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "The target currency (D2) have an invalid length", "D2 = JAPY", "D2 Length = 4" }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractDataToConvertTooShortDataLength() { StreamReader streamReader = MockStreamReaderService.MockContentFile("EUR;550"); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractDataToConvert", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); List <string> messages = new List <string>() { "First line have an invalid format or an invalid data length", "Line = EUR;550", "Data Length = 2" }; Assert.AreEqual(exception.InnerException.Message, string.Join("\n", messages)); }
public void ExtractExchangeRatesZeroCount() { List <string> contents = new List <string>() { "0", "AUD;CHF;0.9661", "JPY;KRW;13.1151", "EUR;CHF;1.2053", "AUD;JPY;86.0305", "EUR;USD;1.2989", "JPY;INR;0.6571" }; StreamReader streamReader = MockStreamReaderService.MockContentFile(string.Join("\n", contents)); TargetInvocationException exception = Assert.ThrowsException <TargetInvocationException>(() => _privateType.InvokeStatic("ExtractExchangeRates", streamReader)); Assert.IsInstanceOfType(exception.InnerException, typeof(DataFormatException)); Assert.AreEqual(exception.InnerException.Message, "No exchange rate"); }