public void TestDefineInsertQueryMethod() { //ARRANGE var connectionManagerMock = new Mock <IDatabaseConnectionFactory <DbConnection> >(); var snapperMemoryCache = new SnapperMemoryCache(); SnapperDatabaseRepositoryHelper <DbConnection> testRepository = new SnapperDatabaseRepositoryHelper <DbConnection>(connectionManagerMock.Object, snapperMemoryCache); //ACT var insertQueryResult = testRepository.ExposeDefineQuery ("Model", $@"INSERT INTO {testRepository.ExposeGetTableNameMethod<Model>()} ({testRepository.ExposeGetColumnName<Model>(x => x.Id_Int)},{testRepository.ExposeGetColumnName<Model>(x => x.StringData)}) VALUES(@Id_Int,@String_data);"); //ASSERT var expectedResult = @"INSERT INTO Models (Id_Int,StringData) VALUES(@Id_Int,@String_data);"; Assert.AreEqual(expectedResult.Replace("\n", "").Replace("\r", ""), insertQueryResult.Replace("\n", "").Replace("\r", "")); }
public void TestDefineSelectQueryMethod() { //ARRANGE var connectionManagerMock = new Mock <IDatabaseConnectionFactory <DbConnection> >(); var snapperMemoryCache = new SnapperMemoryCache(); SnapperDatabaseRepositoryHelper <DbConnection> testRepository = new SnapperDatabaseRepositoryHelper <DbConnection>(connectionManagerMock.Object, snapperMemoryCache); //ACT var result = testRepository.ExposeDefineQuery ("Model", $@"SELECT c.*, a.Id as ModelId, a.* FROM { testRepository.ExposeGetTableNameMethod<Model>()} WHERE c.{testRepository.ExposeGetColumnName<Model>(x => x.Id_Int)} = @companyId ORDER BY c.{testRepository.ExposeGetColumnName<Model>(x => x.StringData)};"); //ASSERT var expectedResult = @"SELECT c.*, a.Id as ModelId, a.* FROM Models WHERE c.Id_Int = @companyId ORDER BY c.StringData;"; Assert.AreEqual(expectedResult, result); }
public void TestGetBoolColumnName() { //ARRANGE var connectionManagerMock = new Mock <IDatabaseConnectionFactory <DbConnection> >(); var snapperMemoryCache = new SnapperMemoryCache(); SnapperDatabaseRepositoryHelper <DbConnection> testRepository = new SnapperDatabaseRepositoryHelper <DbConnection>(connectionManagerMock.Object, snapperMemoryCache); //ACT var result = testRepository.ExposeGetColumnName <Model>(x => x.Date); //ASSERT Assert.AreEqual("Date", result); }
public void TestDefineDeleteQueryMethod() { //ARRANGE var connectionManagerMock = new Mock <IDatabaseConnectionFactory <DbConnection> >(); var snapperMemoryCache = new SnapperMemoryCache(); SnapperDatabaseRepositoryHelper <DbConnection> testRepository = new SnapperDatabaseRepositoryHelper <DbConnection>(connectionManagerMock.Object, snapperMemoryCache); //ACT var deleteQueryResult = testRepository.ExposeDefineQuery ("Model", $@"DELETE FROM {testRepository.ExposeGetTableNameMethod<Model>()} WHERE {testRepository.ExposeGetColumnName<Model>(x => x.Id_Int)}=@Id_Int AND {testRepository.ExposeGetColumnName<Model>(x => x.StringData)}=@String_data"); //ASSERT var expectedResult = @"DELETE FROM Models WHERE Id_Int=@Id_Int AND StringData=@String_data"; Assert.AreEqual(expectedResult.Replace("\n", "").Replace("\r", ""), deleteQueryResult.Replace("\n", "").Replace("\r", "")); }
public void TestDefineUpdateQueryMethod() { //ARRANGE var connectionManagerMock = new Mock <IDatabaseConnectionFactory <DbConnection> >(); var snapperMemoryCache = new SnapperMemoryCache(); SnapperDatabaseRepositoryHelper <DbConnection> testRepository = new SnapperDatabaseRepositoryHelper <DbConnection>(connectionManagerMock.Object, snapperMemoryCache); //ACT var updateQueryResult = testRepository.ExposeDefineQuery ("Model", $@"UPDATE {testRepository.ExposeGetTableNameMethod<Model>()} c SET c.{testRepository.ExposeGetColumnName<Model>(x => x.Flag)} = false WHERE c.{testRepository.ExposeGetColumnName<Model>(x => x.Id_Int)} = @id_Int AND c.{testRepository.ExposeGetColumnName<Model>(x => x.StringData)} != @stringData;"); //ASSERT var expectedResult = @"UPDATE Models c SET c.Flag = false WHERE c.Id_Int = @id_Int AND c.StringData != @stringData;"; Assert.AreEqual(expectedResult.Replace("\n", "").Replace("\r", ""), updateQueryResult.Replace("\n", "").Replace("\r", "")); }