public void GetThuriaDataModelColumnName_GivenDataModel_ShouldReturnExpectedAttribute(string propertyName, bool isAttributeSet,
                                                                                              string columnName   = null, string columnAlias  = null,
                                                                                              bool isInsertColumn = true, bool isUpdateColumn = true)
        {
            //---------------Set up test pack-------------------
            var dataModel = new ThuriaTestDataModel();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var columnAttribute = dataModel.GetThuriaDataModelColumnName(propertyName);

            //---------------Test Result -----------------------
            columnAttribute.Should().NotBeNull();

            if (isAttributeSet)
            {
                columnAttribute.ColumnName.Should().Be(columnName);
                columnAttribute.Alias.Should().Be(columnAlias);
                columnAttribute.IsInsertColumn.Should().Be(isInsertColumn);
                columnAttribute.IsUpdateColumn.Should().Be(isUpdateColumn);
            }
            else
            {
                columnAttribute.ColumnName.Should().Be(propertyName);
                columnAttribute.Alias.Should().BeNullOrEmpty();
                columnAttribute.IsInsertColumn.Should().BeTrue();
                columnAttribute.IsUpdateColumn.Should().BeTrue();
            }
        }
        public void GetThuriaDataModelColumnName_GivenPropertyDoesNotExist_ShouldThrowException()
        {
            //---------------Set up test pack-------------------
            var propertyName = "InvalidProperty";
            var dataModel    = new ThuriaTestDataModel();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var exception = Assert.Throws <Exception>(() => dataModel.GetThuriaDataModelColumnName(propertyName));

            //---------------Test Result -----------------------
            exception.Message.Should().Be($"Property {propertyName} does not exist on {dataModel.GetType().FullName}");
        }