public void NpgsqlIntervalParse() { string input; NpgsqlTimeSpan test; input = "1 day"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(1).Ticks, test.TotalTicks, input); input = "2 days"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(2).Ticks, test.TotalTicks, input); input = "2 days 3:04:05"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(2, 3, 4, 5).Ticks, test.TotalTicks, input); input = "-2 days"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(-2).Ticks, test.TotalTicks, input); input = "-2 days -3:04:05"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(-2, -3, -4, -5).Ticks, test.TotalTicks, input); input = "-2 days -0:01:02"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(-2, 0, -1, -2).Ticks, test.TotalTicks, input); input = "2 days -12:00"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(2, -12, 0, 0).Ticks, test.TotalTicks, input); input = "1 mon"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30).Ticks, test.TotalTicks, input); input = "2 mons"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(60).Ticks, test.TotalTicks, input); input = "1 mon -1 day"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(29).Ticks, test.TotalTicks, input); input = "1 mon -2 days"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(28).Ticks, test.TotalTicks, input); input = "-1 mon -2 days -3:04:05"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(-32, -3, -4, -5).Ticks, test.TotalTicks, input); input = "1 year"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 12).Ticks, test.TotalTicks, input); input = "2 years"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 24).Ticks, test.TotalTicks, input); input = "1 year -1 mon"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 11).Ticks, test.TotalTicks, input); input = "1 year -2 mons"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 10).Ticks, test.TotalTicks, input); input = "1 year -1 day"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 12 - 1).Ticks, test.TotalTicks, input); input = "1 year -2 days"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 12 - 2).Ticks, test.TotalTicks, input); input = "1 year -1 mon -1 day"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 11 - 1).Ticks, test.TotalTicks, input); input = "1 year -2 mons -2 days"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(TimeSpan.FromDays(30 * 10 - 2).Ticks, test.TotalTicks, input); input = "1 day 2:3:4.005"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(1, 2, 3, 4, 5).Ticks, test.TotalTicks, input); var testCulture = new CultureInfo("fr-FR"); Assert.AreEqual(",", testCulture.NumberFormat.NumberDecimalSeparator, "decimal seperator"); using (TestUtil.SetCurrentCulture(testCulture)) { input = "1 day 2:3:4.005"; test = NpgsqlTimeSpan.Parse(input); Assert.AreEqual(new TimeSpan(1, 2, 3, 4, 5).Ticks, test.TotalTicks, input); } }
public void TransactionOnRecycledConnection() { // Use application name to make sure we have our very own private connection pool using (var conn = new NpgsqlConnection(ConnectionString + $";Application Name={TestUtil.GetUniqueIdentifier(nameof(TransactionOnRecycledConnection))}")) { conn.Open(); var prevConnectorId = conn.Connector.Id; conn.Close(); conn.Open(); Assert.That(conn.Connector.Id, Is.EqualTo(prevConnectorId), "Connection pool returned a different connector, can't test"); var tx = conn.BeginTransaction(); conn.ExecuteScalar("SELECT 1"); tx.Commit(); NpgsqlConnection.ClearPool(conn); } }