示例#1
0
        public void Get_currencyconversion_converterlayer_ThrowArgumentException(string from, string to, decimal amount)
        {
            var mock       = new Mock <ICurrencyConverterService>();
            var controller = new ConverterController(mock.Object);

            Assert.Throws <ArgumentException>(() => controller.CurrencyConversion(from, to, amount));
        }
示例#2
0
        public void HomePageLoadsEveryConversionRatio()
        {
            // Arrange
            var fooRatio = new CurrencyConversionRatio()
            {
                OriginalCurrency = "GBP", TargetCurrency = "FOO", Ratio = 0.10
            };
            var barRatio = new CurrencyConversionRatio()
            {
                OriginalCurrency = "GBP", TargetCurrency = "BAR", Ratio = 20.00
            };
            var fakeRatios = new List <CurrencyConversionRatio>
            {
                fooRatio,
                barRatio
            };

            _repository.Setup(x => x.GetConversionRatios()).Returns(fakeRatios);
            _service = new ConverterService(_repository.Object);
            var controller = new ConverterController(_service);

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.That(result.ViewData.Model, Is.InstanceOf(typeof(List <CurrencyConversionRatio>)));
            var ratioList = result.ViewData.Model as List <CurrencyConversionRatio>;

            Assert.That(ratioList.Count, Is.EqualTo(2));
            Assert.That(ratioList.Contains(fooRatio), Is.True);
            Assert.That(ratioList.Contains(barRatio), Is.True);
        }
        public void Convert()
        {
            // Упорядочение
            using (ConverterController controller = new ConverterController(new MediaProvider(Directory.GetCurrentDirectory(), null), null))
            {
                controller.Configuration = new HttpConfiguration();
                controller.Request       = new HttpRequestMessage();
                HttpResponseMessage result = controller.Convert(new ConvertRequest()
                {
                    Data      = File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), "demo.wav")),
                    InFormat  = "wav",
                    OutFormat = "mp3"
                }).Result;

                // Утверждение

                Assert.AreEqual(result.StatusCode, HttpStatusCode.OK);

                string         content        = result.Content.ReadAsStringAsync().Result;
                ConvertRequest convertRequest = JsonConvert.DeserializeObject <ConvertRequest>(content);

                Assert.IsNotNull(convertRequest?.Data);
            }
            // Действие
        }
示例#4
0
        public void GetUnitsTest()
        {
            var ctrl    = new ConverterController();
            var results = ctrl.GetUnits(46).Value.ToList();

            Assert.True(results?.Any(), "Service returned no supported units");
        }
示例#5
0
        public void GetTypesTest()
        {
            var ctrl    = new ConverterController();
            var results = ctrl.GetTypes().Value.ToList();

            Assert.True(results?.Any(), "Service returned no supported types");
            Assert.True(results.Count >= 90, "Service should have at least 90 supported types");
        }
        public void Init()
        {
            AutoMapperConfiguration.RegisterMapping();

            _converterController = new ConverterController();

            // setup service with default request and configuration
            _converterController.Request = new HttpRequestMessage();
            _converterController.Request.SetConfiguration(new HttpConfiguration());
        }
示例#7
0
        public void Initialize_ConverterControllerTest()
        {
            dataModelTest = new DataModel();

            converterControllerTest = new ConverterController();

            //https://docs.microsoft.com/en-us/aspnet/web-api/overview/testing-and-debugging/unit-testing-controllers-in-web-api
            converterControllerTest.Request       = new HttpRequestMessage();
            converterControllerTest.Configuration = new HttpConfiguration();
        }
示例#8
0
        public void Index()
        {
            // Arrange
            var controller = new ConverterController(_service);

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
示例#9
0
        public void ConvertTest()
        {
            var ex = Record.Exception(() => {
                var ctrl    = new ConverterController();
                var example = ctrl.GetExample().Value;

                var result = ctrl.Post(example);
            });

            Assert.Null(ex);
        }
示例#10
0
        public void Get_currencyconversion_converterlayer_success(string from, string to, decimal amount, decimal currency, decimal resultExpected)
        {
            var mock = new Mock <ICurrencyConverterService>();

            mock.Setup(x => x.GetCurrency(from, to))
            .Returns(currency);

            var currencyController = new ConverterController(mock.Object);
            var result             = currencyController.CurrencyConversion(from, to, amount);

            Assert.Equal(resultExpected, result);
        }
示例#11
0
        public void When_Convert_InValid_Params_Then_ThrowsNullException()
        {
            //Arrange
            ConvertInputModel input = new ConvertInputModel();

            input.ConvertFrom = CurrencyType.GBP;
            input.ConvertTo   = CurrencyType.USD;

            var sut = new ConverterController(logger, currencyService, countryService);

            //Assert
            Assert.ThrowsAsync <ArgumentNullException>(() => sut.Convert(input));
        }
示例#12
0
        public void Get_currencies_converterlayer_success()
        {
            var fakeGetCurrencies = GetCurrenciesFake();

            var mock = new Mock <ICurrencyConverterService>();

            mock.Setup(x => x.GetCurrencies())
            .Returns(fakeGetCurrencies);

            var currencyController = new ConverterController(mock.Object);
            var currencies         = currencyController.GetCurrencies();

            Assert.Equal(fakeGetCurrencies, currencies);
        }
示例#13
0
        public void When_Convert_InValid_valueToConvert_Then_Response400BadRequestWithMessage(decimal testValue)
        {
            //Arrange
            ConvertInputModel input = new ConvertInputModel();

            input.ConvertFrom    = CurrencyType.GBP;
            input.ConvertTo      = CurrencyType.USD;
            input.ValueToConvert = testValue;
            var sut = new ConverterController(logger, currencyService, countryService);
            //Act
            var actualResult = sut.Convert(input).GetAwaiter().GetResult() as BadRequestObjectResult;

            //Assert
            Assert.Equal("Invalid data", actualResult.Value);
        }
示例#14
0
        public void ApiConvertCsvTest()
        {
            //setUp
            string inputString  = @"Mary had a little lamb. Peter called for the wolf, and Aesop came. 
Cinderella likes shoes.
";
            string inputString2 = @"  Mary   had a little  lamb  . 


  Peter   called for the wolf   ,  and Aesop came .
 Cinderella  likes shoes."
            ;
            string outputString = @", Word 1, Word 2, Word 3, Word 4, Word 5, Word 6, Word 7, Word 8
Sentence 1, a, had, lamb, little, Mary
Sentence 2, Aesop, and, called, came, for, Peter, the, wolf
Sentence 3, Cinderella, likes, shoes
";

            var httpConfiguration = new HttpConfiguration();

            WebApiConfig.Register(httpConfiguration);
            var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"],
                                                  new HttpRouteValueDictionary {
                { "controller", "converter" }
            });
            var controller = new ConverterController()
            {
                Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:50014/api/controller/csv")
                {
                    Properties =
                    {
                        { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                        { HttpPropertyKeys.HttpRouteDataKey,     httpRouteData     }
                    }
                }
            };
            // Test
            var result  = controller.Post("csv", inputString).Content.ReadAsStringAsync().Result;
            var result2 = controller.Post("csv", inputString2).Content.ReadAsStringAsync().Result;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(outputString, result);
            Assert.IsNotNull(result2);
            Assert.AreEqual(outputString, result2);
        }
示例#15
0
        public void When_Convert_Valid_Params_Then_Response200OK()
        {
            //Arrange
            ConvertInputModel input = new ConvertInputModel();

            input.ConvertFrom    = CurrencyType.GBP;
            input.ConvertTo      = CurrencyType.USD;
            input.ValueToConvert = 2;
            decimal testconvertRate = 1.60m * (input.ValueToConvert);
            var     sut             = new ConverterController(logger, currencyService, countryService);
            //Act
            var testResult = sut.Convert(input).GetAwaiter().GetResult() as OkObjectResult;

            //Assert
            Assert.NotNull(testResult);
            Assert.Equal("200", testResult.StatusCode.ToString());
            Assert.Equal(testconvertRate, testResult.Value);
        }
示例#16
0
        public void When_GetCurrencies_then_Returns_CurrencyList()
        {
            //Arrange
            var currencies = new List <Currency> {
                new Currency("GBP", "Pounds")
            };
            var sut = new ConverterController(logger, currencyService, countryService);

            A.CallTo(() => currencyService.GetCurrenciesAsync()).Returns(currencies);

            //Act
            var result = sut.GetCurrencies().GetAwaiter().GetResult();

            //Assert
            A.CallTo(() => currencyService.GetCurrenciesAsync()).MustHaveHappenedOnceExactly();
            Assert.IsType <ActionResult <List <Currency> > >(result);
            Assert.NotNull(result);
        }
示例#17
0
        public void When_GetCountries_Then_Returns_CountryList()
        {
            //Arrange
            var countries = new List <Country> {
                new Country {
                    Id = 1, Name = "UK", CurrencyName = CurrencyType.GBP
                }
            };

            var sut = new ConverterController(logger, currencyService, countryService);

            A.CallTo(() => countryService.GetCountriesAsync()).Returns(countries);

            //Act
            var result = sut.GetCountries().GetAwaiter().GetResult();

            //Assert
            A.CallTo(() => countryService.GetCountriesAsync()).MustHaveHappenedOnceExactly();
            Assert.IsType <ActionResult <List <Country> > >(result);
        }
示例#18
0
 public ConverterControllerTests()
 {
     _sut = new ConverterController(_converterSrvc.Object);
 }
示例#19
0
 public void Setup()
 {
     _converterService    = new Mock <IConverterService>();
     _converterController = new ConverterController(_converterService.Object);
 }
示例#20
0
 public ConverterControllerTests()
 {
     _services   = new ConvertServiceMock();
     _controller = new ConverterController(_services);
 }
示例#21
0
 public void CleanUp_ControllerTest()
 {
     dataModelTest           = null;
     converterControllerTest = null;
 }
示例#22
0
        public void ApiConvertXmlTest()
        {
            //setUp
            string inputString  = @"Mary had a little lamb. Peter called for the wolf, and Aesop came. 
Cinderella likes shoes.
";
            string inputString2 = @"  Mary   had a little  lamb  . 


  Peter   called for the wolf   ,  and Aesop came .
 Cinderella  likes shoes."
            ;
            string outputString = @"<?xml version=""1.0"" encoding=""utf-8"" standalone=""yes""?>
<text>
  <sentence>
    <word>a</word>
    <word>had</word>
    <word>lamb</word>
    <word>little</word>
    <word>Mary</word>
  </sentence>
  <sentence>
    <word>Aesop</word>
    <word>and</word>
    <word>called</word>
    <word>came</word>
    <word>for</word>
    <word>Peter</word>
    <word>the</word>
    <word>wolf</word>
  </sentence>
  <sentence>
    <word>Cinderella</word>
    <word>likes</word>
    <word>shoes</word>
  </sentence>
</text>";
            // Setup
            var httpConfiguration = new HttpConfiguration();

            WebApiConfig.Register(httpConfiguration);
            var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"],
                                                  new HttpRouteValueDictionary {
                { "controller", "converter" }
            });
            var controller = new ConverterController()
            {
                Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:50014/api/controller/xml")
                {
                    Properties =
                    {
                        { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                        { HttpPropertyKeys.HttpRouteDataKey,     httpRouteData     }
                    }
                }
            };

            // Test
            var result  = controller.Post("xml", inputString).Content.ReadAsStringAsync().Result;
            var result2 = controller.Post("xml", inputString2).Content.ReadAsStringAsync().Result;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(outputString, result);
            Assert.IsNotNull(result2);
            Assert.AreEqual(outputString, result2);
        }