public void GetCount_ShouldCallAsyncMethod_AndReturnResult()
        {
            // Arrange
            const long count = 38;

            _mockInner
            .Setup(i => i.GetCountAsync())
            .ReturnsAsync(count);

            var subject = new SyncQueryServiceAdapter <FakeEntity <int>, int>(_mockInner.Object);

            // Act
            var result = subject.GetCount();

            // Assert
            result.Should().Be(count);
            _mockInner.VerifyAll();
        }
        public void GetAll_ShouldCallAsyncMethod_AndReturnResult()
        {
            // Arrange
            var data = Enumerable.Empty <FakeEntity <int> >();

            _mockInner
            .Setup(i => i.GetAllAsync())
            .ReturnsAsync(data);

            var subject = new SyncQueryServiceAdapter <FakeEntity <int>, int>(_mockInner.Object);

            // Act
            var result = subject.GetAll();

            // Assert
            result.Should().BeSameAs(data);
            _mockInner.VerifyAll();
        }
        public void TryGetById_ShouldCallAsyncMethod_AndReturnFalse_WhenEntityIsNotFound()
        {
            // Arrange
            const int id = 42;

            _mockInner
            .Setup(i => i.TryGetByIdAsync(id))
            .ReturnsAsync((FakeEntity <int>)null);

            var subject = new SyncQueryServiceAdapter <FakeEntity <int>, int>(_mockInner.Object);

            // Act
            var success = subject.TryGetById(id, out var result);

            // Assert
            success.Should().BeFalse();
            result.Should().BeNull();

            _mockInner.VerifyAll();
        }
        public void GetById_ShouldCallAsyncMethod_AndReturnResult()
        {
            // Arrange
            var entity = new FakeEntity <int> {
                Id = 42
            };

            _mockInner
            .Setup(i => i.GetByIdAsync(entity.Id))
            .ReturnsAsync(entity);

            var subject = new SyncQueryServiceAdapter <FakeEntity <int>, int>(_mockInner.Object);

            // Act
            var result = subject.GetById(entity.Id);

            // Assert
            result.Should().BeSameAs(entity);
            _mockInner.VerifyAll();
        }
        public void TryGetById_ShouldCallAsyncMethod_AndReturnTrue_WhenEntityIsFound()
        {
            // Arrange
            var entity = new FakeEntity <int> {
                Id = 42
            };

            _mockInner
            .Setup(i => i.TryGetByIdAsync(entity.Id))
            .ReturnsAsync(entity);

            var subject = new SyncQueryServiceAdapter <FakeEntity <int>, int>(_mockInner.Object);

            // Act
            var success = subject.TryGetById(entity.Id, out var result);

            // Assert
            success.Should().BeTrue();
            result.Should().BeSameAs(entity);

            _mockInner.VerifyAll();
        }