public async Task ValidateAsync_FieldExists_DoesNothing()
        {
            //arrange
            var fieldContainer = new Mock <IFieldContainer>();

            var field           = new Field();
            var fieldDataAccess = new Mock <IFieldDataAccess>();

            fieldDataAccess.Setup(x => x.GetByAsync(fieldContainer.Object)).ReturnsAsync(field);

            var fieldGetService = new FieldGetService(fieldDataAccess.Object);

            //act
            var action = new Func <Task>(() => fieldGetService.ValidateAsync(fieldContainer.Object));

            //assert
            await action.Should().NotThrowAsync <Exception>();
        }
        public async Task ValidateAsync_FieldNotExists_ThrowsError()
        {
            //arrange
            var fixture = new Fixture();
            var id      = fixture.Create <int>();

            var fieldContainer = new Mock <IFieldContainer>();

            fieldContainer.Setup(x => x.FieldId).Returns(id);

            var field           = new Field();
            var fieldDataAccess = new Mock <IFieldDataAccess>();

            fieldDataAccess.Setup(x => x.GetByAsync(fieldContainer.Object)).ReturnsAsync((Field)null);

            var fieldGetService = new FieldGetService(fieldDataAccess.Object);

            //act
            var action = new Func <Task>(() => fieldGetService.ValidateAsync(fieldContainer.Object));

            //assert
            await action.Should().ThrowAsync <InvalidOperationException>($"Field not found by id {id}");
        }