public async Task Post_ShouldInsertHourlySharePrice()
        {
            // Arrenge
            var hourRate = new Share
            {
                Id        = 1,
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };

            _shareRepositoryMock
            .Setup(m => m.InsertAsync(It.IsAny <Share>()))
            .Returns(Task.FromResult(hourRate));

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            var okResult     = result.Should().BeOfType <CreatedResult>().Subject;
            var shareCreated = okResult.Value.Should().BeAssignableTo <Share>().Subject;

            shareCreated.Id.Should().Be(1);
            shareCreated.Symbol.Should().Be("CBI");
            shareCreated.Rate.Should().Be(330.0M);
            shareCreated.TimeStamp.Should().Be(new DateTime(2018, 08, 17, 5, 0, 0));

            _shareRepositoryMock.Verify(mock => mock.InsertAsync(It.IsAny <Share>()));
        }
示例#2
0
        public async Task Post_SupplyIncorrectModel_ShouldReturnBadRequest()
        {
            var hourRate = new HourlyShareRateModel
            {
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };

            _shareController.ModelState.AddModelError("error", "Share symbol should be all capital letters with 3 characters");

            var act = await _shareController.Post(hourRate);

            var result = act as BadRequestObjectResult;

            Assert.IsNotNull(result);
        }
示例#3
0
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            var hourRate = new HourlyShareRate
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };
            var result = await _shareController.Post(hourRate);

            Assert.NotNull(result);
            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
            Assert.AreEqual(201, createdResult.StatusCode);
        }
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            // Arrange
            var hourRate = new HourlyShareRateModel
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            Assert.NotNull(result);

            // TODO: This unit test is broken, the result received from the Post method is correct.
            // => Fixed and added appropriate assertions
            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
            Assert.AreEqual(201, createdResult.StatusCode);
            var responseObject = createdResult.Value as HourlyShareRateModel;

            Assert.NotNull(responseObject);
            Assert.AreEqual("CBI", responseObject.Symbol);
            Assert.AreEqual(330.0M, responseObject.Rate);
            Assert.IsTrue(DateTime.Equals(hourRate.TimeStamp, responseObject.TimeStamp));
        }
示例#5
0
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            // Arrange
            var hourRate = new HourlyShareRate
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };

            _shareController.ModelState.Clear();

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            Assert.IsTrue(result is CreatedResult);
        }
示例#6
0
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            // Arrange
            var hourRate = new HourlyShareRateModel
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 01, 16, 14, 5, 0)
            };

            // Act
            var result = await _shareController.Post(hourRate);

            Assert.NotNull(result);

            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
        }
示例#7
0
        public async Task Put_ShouldUpsertHourlySharePrice()
        {
            // Arrange
            var hourRate = new HourlyShareRateModel
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2019, 04, 07, 5, 0, 0)
            };

            _shareServiceMock.Setup(t => t.UpsertHourlyPriceAsync(Map(hourRate)))
            .Returns(Task.FromResult(new Random().Next(200, 201)));

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            Assert.NotNull(result);

            var createdResult = result as CreatedResult;
            var okresult      = result as OkObjectResult;

            Assert.True(((createdResult != null && createdResult.StatusCode == 201) || (okresult != null && okresult.StatusCode == 200)), "Put Used to Insert or Update the Hourly Price");
        }
        public void Post()
        {
            try
            {
                ShareController controller = new ShareController();

                controller.Post("*****@*****.**", "https://ajuda.sapo.pt/");

                Assert.AreEqual(true, true);
            }
            catch (Exception ex)
            {
                Assert.AreEqual(true, false, ex.Message);
            }
        }
示例#9
0
        public async Task Post_ShouldInsertShare()
        {
            var share = new Share
            {
                Symbol = "CBI"
            };

            // Arrange

            // Act
            var result = await _shareController.Post(share);

            // Assert
            Assert.NotNull(result);

            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
            Assert.AreEqual(201, createdResult.StatusCode);
        }
示例#10
0
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            var hourRate = new HourlyShareRate
            {
                Symbol = "CBI",
                Rate   = 330.0M,
            };

            // Arrange

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            Assert.NotNull(result);

            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
            Assert.AreEqual(201, createdResult.StatusCode);
        }
        public async Task Post_ShouldInsertHourlySharePrice()
        {
            // Arrange
            var hourRate = new HourlyShareRateModel
            {
                Symbol    = "CBI",
                Rate      = 330.0M,
                TimeStamp = new DateTime(2018, 08, 17, 5, 0, 0)
            };

            // Act
            var result = await _shareController.Post(hourRate);

            // Assert
            Assert.NotNull(result);

            // TODO: This unit test is broken, the result received from the Post method is correct.
            var createdResult = result as CreatedResult;

            Assert.NotNull(createdResult);
            Assert.AreEqual(201, createdResult.StatusCode);
        }