public async Task GetFigure_500_ServerError()
        {
            //Arrange
            Mock <IGeometryService> serviceMock = new Mock <IGeometryService>();

            serviceMock.Setup(x => x.FindFigureAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ThrowsAsync(new NotImplementedException());

            //Act
            GeometryController controller = GetGeometryController(serviceMock.Object);

            //Assert
            var result = await controller.GetFigureArea(1, CancellationToken.None);

            var resultAsType = result as ObjectResult;

            Assert.NotNull(resultAsType);
            Assert.AreEqual(StatusCodes.Status500InternalServerError, resultAsType.StatusCode);
        }
        public async Task GetFigure_400_FigureNotFound()
        {
            //Arrange
            Mock <IGeometryService> serviceMock = new Mock <IGeometryService>();

            serviceMock.Setup(x => x.FindFigureAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(null as TestEntity);

            //Act
            GeometryController controller = GetGeometryController(serviceMock.Object);

            //Assert
            var result = await controller.GetFigureArea(1, CancellationToken.None);

            var resultAsType = result as BadRequestObjectResult;
            var valueAsType  = resultAsType?.Value as ProblemDetails;

            Assert.NotNull(valueAsType);
        }
        public async Task GetFigure_400_BusinessValidationError()
        {
            //Arrange
            Mock <IGeometryService> serviceMock = new Mock <IGeometryService>();

            serviceMock.Setup(x => x.FindFigureAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ThrowsAsync(new BusinessValidationException("ошибка", "ошибка"));

            //Act
            GeometryController controller = GetGeometryController(serviceMock.Object);

            //Assert
            var result = await controller.GetFigureArea(1, CancellationToken.None);

            var resultAsType = result as BadRequestObjectResult;
            var valueAsType  = resultAsType?.Value as ProblemDetails;

            Assert.NotNull(valueAsType);
        }
        public async Task GetFigure_Success()
        {
            //Arrange
            var guid = Guid.NewGuid();
            Mock <IGeometryService> serviceMock = new Mock <IGeometryService>();

            serviceMock.Setup(x => x.FindFigureAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new TestEntity());

            //Act
            GeometryController controller = GetGeometryController(serviceMock.Object);

            //Assert
            var result = await controller.GetFigureArea(1, CancellationToken.None);

            var resultAsType = result as OkObjectResult;

            Assert.IsNotNull(resultAsType);
            Assert.IsNotNull(resultAsType.Value);
            Assert.AreEqual(3, resultAsType.Value);
        }