public async Task Ensure_we_ignore_case_on_property() { if (DapperRepo.Tests.Connection.SelectedEnvironment == Enviroment.PostgreSQL || DapperRepo.Tests.Connection.SelectedEnvironment == Enviroment.Sqlite) { // postgres is case sensitive this will fail return; } var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "chaal", SomeNumber = 73 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.Search <TableWithNoAutoGeneratedPrimaryKey>("NAME", "Michael"); Assert.AreEqual(1, result.Count()); }
public void Ensure_we_can_match_on_properties_ignoring_nulls() { var item = new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = 33 }; var testTableItems = new[] { new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = 31 }, item, new TableWithAutoIncrementPrimaryKey { Name = "Michael", SomeNumber = 33 }, new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = null }, new TableWithAutoIncrementPrimaryKey { Name = null, SomeNumber = 33 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithAutoGeneratedPrimaryKey(Connection, testTableItems); var oldNumber = item.SomeNumber; item.SomeNumber = null; var results = Sut.GetExactMatches(item, true); Assert.AreEqual(3, results.Count()); Assert.AreEqual(3, results.Count(t => t.Name == item.Name)); Assert.AreEqual(1, results.Count(t => t.SomeNumber == oldNumber)); Assert.AreEqual(1, results.Count(t => t.SomeNumber is null)); }
public async Task Ensure_we_can_match_exact() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "chaal", SomeNumber = 73 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.Search(new TableWithNoAutoGeneratedPrimaryKey { Name = "Michael" }, new SearchCriteria { PropertyName = nameof(TableWithNoAutoGeneratedPrimaryKey.Name), SearchType = SearchType.Equals }); Assert.AreEqual(1, result.Count()); }
public void Ensure_we_only_update_one_record() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; var dontTouch = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "tgwre", SomeNumber = 33 }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, new[] { testTableItem, dontTouch }); testTableItem.Name = "SomeOtherNAme"; testTableItem.SomeNumber = 532; Sut.Update(testTableItem); var records = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection) .ToArray(); Assert.AreEqual(2, records.Count()); Assert.AreEqual(testTableItem.Id, records.First(f => f.Id == testTableItem.Id).Id); Assert.AreEqual(testTableItem.SomeNumber, records.First(f => f.Id == testTableItem.Id).SomeNumber); Assert.AreEqual(testTableItem.Name, records.First(f => f.Id == testTableItem.Id).Name); Assert.AreEqual(dontTouch.Id, records.First(f => f.Id == dontTouch.Id).Id); Assert.AreEqual(dontTouch.SomeNumber, records.First(f => f.Id == dontTouch.Id).SomeNumber); Assert.AreEqual(dontTouch.Name, records.First(f => f.Id == dontTouch.Id).Name); }
public void Ensure_we_can_match_exact() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "chaal", SomeNumber = 73 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = Sut.GetAllByX <TableWithNoAutoGeneratedPrimaryKey, int?>("SomeNumber", testTableItems.FirstOrDefault().SomeNumber); Assert.AreEqual(1, result.Count()); }
public async Task Ensure_we_Get_correct_record_back_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Wanted1", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Wanted2", SomeNumber = 33 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var items = (await Sut.QueryMany <TableWithNoAutoGeneratedPrimaryKeyDiffSqlName>("select * from TableWithNoAutoGeneratedPrimaryKey where SomeNumber = 33")).ToArray(); var expected = testTableItems.Where(f => f.SomeNumber == 33); Assert.AreEqual(expected.Count(), items.Length); foreach (var item in expected) { var test = items.FirstOrDefault(x => x.Id == item.Id); Assert.IsNotNull(test); Assert.AreEqual(item.Name, test.Name); Assert.AreEqual(item.Id, test.Id); Assert.AreEqual(item.SomeNumber, test.SomeNumber); } }
public void Ensure_we_Get_correct_record_back_with_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Wanted1", SomeNumber = 11 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Wanted2", SomeNumber = 21 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var item = (Sut.QuerySingle <TableWithNoAutoGeneratedPrimaryKeyDiffSqlName>( "select * from TableWithNoAutoGeneratedPrimaryKey where SomeNumber = 33")); var expected = testTableItems.First(f => f.SomeNumber == 33); Assert.IsNotNull(item); Assert.AreEqual(item.Name, expected.Name); Assert.AreEqual(item.Id, expected.Id); Assert.AreEqual(item.SomeNumber, expected.SomeNumber); }
public void Ensure_we_get_all_records_back_with_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var items = Sut.GetAll <TableWithNoAutoGeneratedPrimaryKeyDiffSqlName>().ToArray(); Assert.AreEqual(testTableItems.Length, items.Length); foreach (var item in testTableItems) { var test = items.FirstOrDefault(x => x.Id == item.Id); Assert.IsNotNull(test); Assert.AreEqual(item.Name, test.Name); Assert.AreEqual(item.SomeNumber, test.SomeNumber); } }
public void Ensure_we_can_match_on_properties_withNull() { var item = new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = null }; var testTableItems = new[] { new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = 31 }, item, new TableWithAutoIncrementPrimaryKey { Name = "Michael", SomeNumber = 33 }, new TableWithAutoIncrementPrimaryKey { Name = null, SomeNumber = 33 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithAutoGeneratedPrimaryKey(Connection, testTableItems); var results = Sut.GetExactMatches(item, false); Assert.AreEqual(1, results.Count()); var test = results.First(); Assert.IsNotNull(test); Assert.AreEqual(item.Name, test.Name); Assert.AreEqual(item.SomeNumber, test.SomeNumber); }
public void Setup() { DbName = (ClassName + RandomChars).ToLower(); var scriptLocation = PathBuilder.BuildSqlScriptLocation($"CreateDbWithTestTable.{DapperRepo.Tests.Connection.SelectedEnvironment.ToString()}"); var sql = File.ReadAllText(scriptLocation).Replace("PlaceHolderDbName", DbName); bool first = true; foreach (var item in sql.Split("{WaitBlock}")) { // this might be come a bottlekneck as we create a new connection for every command but hay its tests should not be doing anything massive DataBaseScriptRunnerAndBuilder.ExecuteCommandNonQuery(first? DapperRepo.Tests.Connection.MasterConnectionString : Connection, item); first = false; } }
public async Task Ensure_we_can_match_on_multiple() { var goodId = Guid.NewGuid().ToString("N"); var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = goodId, Name = "chael", SomeNumber = 8 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 8 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.Search(new TableWithNoAutoGeneratedPrimaryKey { Name = "%hae%", SomeNumber = 9 }, new[] { new SearchCriteria { PropertyName = nameof(TableWithNoAutoGeneratedPrimaryKey.SomeNumber), SearchType = SearchType.LessThanEqualTo }, new SearchCriteria { PropertyName = nameof(TableWithNoAutoGeneratedPrimaryKey.Name), SearchType = SearchType.Like }, }); Assert.AreEqual(1, result.Count()); Assert.Contains(goodId, result.Select(t => t.Id).ToArray()); }
public async Task Ensure_if_no_record_found_we_return_null_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var item = await Sut.GetById(new TableWithNoAutoGeneratedPrimaryKeyDiffSqlName { Id = Guid.NewGuid().ToString("N") }); Assert.IsNull(item); }
public async Task Ensure_we_dont_ignore_nulls_by_default() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, new [] { testTableItem }); testTableItem.Name = null; testTableItem.SomeNumber = 532; await Sut.Update(testTableItem); var records = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection).ToArray(); Assert.AreEqual(1, records.Count()); Assert.AreEqual(testTableItem.Id, records.First().Id); Assert.AreEqual(testTableItem.SomeNumber, records.First().SomeNumber); Assert.IsNull(records.First().Name); }
public void Ensure_we_can_Delete_a_record_diff_name() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; var dontTouch = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "gwgw", SomeNumber = 12 }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, new[] { testTableItem, dontTouch }); Sut.Delete(new TableWithNoAutoGeneratedPrimaryKeyDiffSqlName(testTableItem)); var records = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection).ToArray(); Assert.AreEqual(1, records.Count()); Assert.AreEqual(dontTouch.Id, records.First().Id); Assert.AreEqual(dontTouch.SomeNumber, records.First().SomeNumber); Assert.AreEqual(dontTouch.Name, records.First().Name); }
public async Task Ensure_we_can_add_tables_with_diff_name() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; await Sut.Add(new TableWithNoAutoGeneratedPrimaryKeyDiffSqlName(testTableItem)); var resultInDb = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection); var items = resultInDb as TableWithNoAutoGeneratedPrimaryKey[] ?? resultInDb.ToArray(); Assert.AreEqual(1, items.Length); var test = items.FirstOrDefault(); Assert.IsNotNull(test); Assert.AreEqual(testTableItem.Id, test.Id); Assert.AreEqual(testTableItem.Name, test.Name); Assert.AreEqual(testTableItem.SomeNumber, test.SomeNumber); }
public async Task Ensure_we_can_add_with_auto_increment_diff_name() { var testTableItem = new TableWithAutoIncrementPrimaryKey() { Name = "Michale", SomeNumber = 33 }; await Sut.Add(new TableWithAutoIncrementPrimaryKeyDiffSqlName(testTableItem)); var resultInDb = DataBaseScriptRunnerAndBuilder.GetAll <TableWithAutoIncrementPrimaryKey>(Connection); var items = resultInDb as TableWithAutoIncrementPrimaryKey[] ?? resultInDb.ToArray(); Assert.AreEqual(1, items.Length); var test = items.FirstOrDefault(); Assert.IsNotNull(test); Assert.IsNotNull(test.Id); Assert.True(test.Id > 0); Assert.AreEqual(testTableItem.Name, test.Name); Assert.AreEqual(testTableItem.SomeNumber, test.SomeNumber); }
public async Task Ensure_we_Can_Get_correct_record_Back_when_id_is_a_number_diff_name() { var testTableItems = new[] { new TableWithAutoIncrementPrimaryKey { Name = "Michale", SomeNumber = 33 }, }; DataBaseScriptRunnerAndBuilder.InsertTableWithAutoGeneratedPrimaryKey(Connection, testTableItems); var record = DataBaseScriptRunnerAndBuilder.GetAll <TableWithAutoIncrementPrimaryKey>(Connection).First(); var item = await Sut.GetById(new TableWithAutoIncrementPrimaryKeyDiffSqlName { Id = record.Id }); Assert.IsNotNull(item); Assert.AreEqual(record.Id, item.Id); Assert.AreEqual(testTableItems.First().SomeNumber, item.SomeNumber); Assert.AreEqual(testTableItems.First().Name, item.Name); }
public async Task Ensure_we_can_update_a_record_diff_name() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, new[] { testTableItem }); testTableItem.Name = "SomeOtherNAme"; testTableItem.SomeNumber = 532; await Sut.Update(new TableWithNoAutoGeneratedPrimaryKeyDiffSqlName(testTableItem)); var records = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection) .ToArray(); Assert.AreEqual(1, records.Count()); Assert.AreEqual(testTableItem.Id, records.First().Id); Assert.AreEqual(testTableItem.SomeNumber, records.First().SomeNumber); Assert.AreEqual(testTableItem.Name, records.First().Name); }
public void Ensure_we_can_add_with_null_field_for_other_values() { var testTableItem = new TableWithAutoIncrementPrimaryKey() { Name = "Michale", SomeNumber = null }; Sut.Add(testTableItem); var resultInDb = DataBaseScriptRunnerAndBuilder.GetAll <TableWithAutoIncrementPrimaryKey>(Connection); var items = resultInDb as TableWithAutoIncrementPrimaryKey[] ?? resultInDb.ToArray(); Assert.AreEqual(1, items.Length); var test = items.FirstOrDefault(); Assert.IsNotNull(test); Assert.IsNotNull(test.Id); Assert.True(test.Id > 0); Assert.AreEqual(testTableItem.Name, test.Name); Assert.IsNull(test.SomeNumber); }
public async Task Ensure_we_Can_Get_correct_record_Back_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var item = await Sut.GetById(new TableWithNoAutoGeneratedPrimaryKeyDiffSqlName { Id = testTableItems.First().Id }); Assert.IsNotNull(item); Assert.AreEqual(testTableItems.First().Id, item.Id); Assert.AreEqual(testTableItems.First().SomeNumber, item.SomeNumber); Assert.AreEqual(testTableItems.First().Name, item.Name); }
public void Ensure_we_can_ignore_null_update_a_record() { var testTableItem = new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, new[] { testTableItem }); testTableItem.Name = null; testTableItem.SomeNumber = 532; Sut.Update(testTableItem, true); var records = DataBaseScriptRunnerAndBuilder.GetAll <TableWithNoAutoGeneratedPrimaryKey>(Connection) .ToArray(); Assert.AreEqual(1, records.Count()); Assert.AreEqual(testTableItem.Id, records.First().Id); Assert.AreEqual(testTableItem.SomeNumber, records.First().SomeNumber); Assert.AreEqual("Michale", records.First().Name); }
public async Task Ensure_we_can_match_on_LessThan() { var goodId = Guid.NewGuid().ToString("N"); var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33, }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13, }, new TableWithNoAutoGeneratedPrimaryKey { Id = goodId, Name = "chael", SomeNumber = 5 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 15, } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.Search(new TableWithNoAutoGeneratedPrimaryKey { SomeNumber = 9 }, new SearchCriteria { PropertyName = nameof(TableWithNoAutoGeneratedPrimaryKey.SomeNumber), SearchType = SearchType.LessThan }); Assert.AreEqual(1, result.Count()); Assert.AreEqual(goodId, result.FirstOrDefault().Id); }
public async Task Ensure_we_can_match_exact_diff_name() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "chaal", SomeNumber = 73 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.GetAllByX <TableWithNoAutoGeneratedPrimaryKeyDiffSqlName, String>("Name", "Michael"); Assert.AreEqual(1, result.Count()); }
public async Task Ensure_we_can_match_like_ignoring_first_chars() { var testTableItems = new[] { new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michale", SomeNumber = 33 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "Michael", SomeNumber = 13 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "chael", SomeNumber = 73 }, new TableWithNoAutoGeneratedPrimaryKey { Id = Guid.NewGuid().ToString("N"), Name = "othername", SomeNumber = 1 } }; DataBaseScriptRunnerAndBuilder.InsertTableWithNoAutoGeneratedPrimaryKey(Connection, testTableItems); var result = await Sut.Search <TableWithNoAutoGeneratedPrimaryKey>("Name", "%chael"); Assert.AreEqual(2, result.Count()); }
public void TearDown() { DataBaseScriptRunnerAndBuilder.KillDb(DapperRepo.Tests.Connection.MasterConnectionString, DbName); }