public void ShouldRetrieveMultipleResults()
        {
            var args = new SearchParentsAndChildsParameters
            {
                ParentName = "Test",
                Active     = true
            };

            var results = new ReaderStoredProcedure <SearchParentsAndChildsParameters, SingleKeyParentTable, SingleKeyChildTable>(this.Fixture.Connector).Execute(args);

            results.Item1.Should().NotBeNull();
            results.Item1.Should().HaveCount(2);
            results.Item2.Should().NotBeNull();
            results.Item2.Should().HaveCount(4);

            var activeParentEntity = this.Fixture.CreateNewActiveEntity();

            foreach (var entity in results.Item1)
            {
                entity.Name.Should().StartWith("Test Parent");
                entity.ShouldBeEquivalentTo(activeParentEntity, options => options.Excluding(o => o.Name)
                                            .Excluding(o => o.Id)
                                            .Excluding(o => o.Childs));
            }

            var activeChildEntity = this.Fixture.CreateActiveChildEntity();

            foreach (var entity in results.Item2)
            {
                entity.Name.Should().StartWith("Test Child");
                entity.ShouldBeEquivalentTo(activeChildEntity, options => options.Excluding(o => o.Name)
                                            .Excluding(o => o.Id)
                                            .Excluding(o => o.ParentId));
            }
        }
        public void NonQueryProcedureShouldModifyEntity()
        {
            var updateRoutineArgs = new UpdateRoutineParameters
            {
                Id = 1,
            };

            var nonQuery = new NonQueryStoredProcedure <UpdateRoutineParameters>(this.Fixture.Connector);

            nonQuery.ExecuteNonQuery(updateRoutineArgs);

            var searchClientArgs = new SearchParentTableParameters
            {
                ParentName = "Test Parent ChangedNameTest",
                Active     = true
            };
            var results = new ReaderStoredProcedure <SearchParentTableParameters, SingleKeyParentTable>(this.Fixture.Connector).Execute(searchClientArgs);

            results.Should().NotBeNull();
            results.Should().HaveCount(1);
            results[0].Name.Should().Be("Test Parent ChangedNameTest");
        }
        public void ShouldRetrieveTwoResultsOnInactiveClients()
        {
            var args = new SearchParentTableParameters
            {
                ParentName = "Test Par",
                Active     = false
            };

            var results = new ReaderStoredProcedure <SearchParentTableParameters, SingleKeyParentTable>(this.Fixture.Connector).Execute(args);

            results.Should().NotBeNull();
            results.Should().HaveCount(2);

            var activeParentEntity = this.Fixture.CreateNewInactiveEntity();

            foreach (var entity in results)
            {
                entity.Name.Should().StartWith("Test Parent");
                entity.ShouldBeEquivalentTo(activeParentEntity, options => options.Excluding(o => o.Name)
                                            .Excluding(o => o.Id)
                                            .Excluding(o => o.Childs));
            }
        }