Datei: IntegrationTests/IntegrationTests/QueryCacheTests.cs
Last Commit (182cfd7)
			
| 1 | using NDO. Logging; | 
| 2 | using NUnit.Framework; | 
| 3 | using Reisekosten.Personal; | 
| 4 | using System; | 
| 5 | using System.Collections.Generic; | 
| 6 | using System.Linq; | 
| 7 | using System.Text; | 
| 8 | using System.Threading.Tasks; | 
| 9 | |
| 10 | namespace NdoUnitTests | 
| 11 | { | 
| 12 | ····[TestFixture] | 
| 13 | public class QueryCacheTests | 
| 14 | ····{ | 
| 15 | ········void CreateObject() | 
| 16 | ········{ | 
| 17 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 18 | ············Mitarbeiter m = new Mitarbeiter(); | 
| 19 | ············m.Vorname = "Mirko"; | 
| 20 | ············m.Nachname = "Matytschak"; | 
| 21 | ············pm.MakePersistent( m ); | 
| 22 | ············pm.Save(); | 
| 23 | ········} | 
| 24 | |
| 25 | ········[TearDown] | 
| 26 | ········public void TearDown() | 
| 27 | ········{ | 
| 28 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 29 | ············pm.Objects<Mitarbeiter>().DeleteDirectly(); | 
| 30 | ········} | 
| 31 | |
| 32 | ········[Test] | 
| 33 | ········public void TestSimpleQuery() | 
| 34 | ········{ | 
| 35 | ············CreateObject(); | 
| 36 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 37 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 38 | ············pm.UseQueryCache = true; | 
| 39 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 40 | ············Assert.That( result.Count == 1 ); | 
| 41 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 42 | ············pm.VerboseMode = true; | 
| 43 | ············var testAdapter = new TestLogAdapter(); | 
| 44 | ············pm.LogAdapter = testAdapter; | 
| 45 | ············result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 46 | ············Assert.That( result.Count == 1 ); | 
| 47 | Assert. That( testAdapter. Text. Trim( ) == "Getting results from QueryCache" ) ; | 
| 48 | ········} | 
| 49 | |
| 50 | ········[Test] | 
| 51 | ········public void QueryCacheCanBeSwitchedOff() | 
| 52 | ········{ | 
| 53 | ············CreateObject(); | 
| 54 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 55 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 56 | ············pm.UseQueryCache = false; | 
| 57 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 58 | ············Assert.That( result.Count == 1 ); | 
| 59 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 60 | ············pm.VerboseMode = true; | 
| 61 | ············var testAdapter = new TestLogAdapter(); | 
| 62 | ············pm.LogAdapter = testAdapter; | 
| 63 | ············result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 64 | ············Assert.That( result.Count == 1 ); | 
| 65 | Assert. That( testAdapter. Text. IndexOf( "QueryCache" ) == -1 ) ; | 
| 66 | ········} | 
| 67 | |
| 68 | ········[Test] | 
| 69 | ········public void DifferentQueryDoesntUseTheCache() | 
| 70 | ········{ | 
| 71 | ············CreateObject(); | 
| 72 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 73 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 74 | ············pm.UseQueryCache = true; | 
| 75 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 76 | ············Assert.That( result.Count == 1 ); | 
| 77 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 78 | ············pm.VerboseMode = true; | 
| 79 | ············var testAdapter = new TestLogAdapter(); | 
| 80 | ············pm.LogAdapter = testAdapter; | 
| 81 | ············result = pm.Objects<Mitarbeiter>().Where(m=>m.Vorname == "Mirko").ResultTable; | 
| 82 | ············Assert.That( result.Count == 1 ); | 
| 83 | Assert. That( testAdapter. Text. IndexOf( "QueryCache" ) == -1 ) ; | 
| 84 | ········} | 
| 85 | |
| 86 | ········[Test] | 
| 87 | ········public void TakeAndSkipDontUseTheSameCacheResult() | 
| 88 | ········{ | 
| 89 | ············CreateObject(); | 
| 90 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 91 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 92 | ············pm.UseQueryCache = true; | 
| 93 | ············var result = pm.Objects<Mitarbeiter>().OrderBy(m=>m.Nachname).Skip(0).Take(1).ResultTable; | 
| 94 | ············Assert.That( result.Count == 1 ); | 
| 95 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 96 | ············pm.VerboseMode = true; | 
| 97 | ············var testAdapter = new TestLogAdapter(); | 
| 98 | ············pm.LogAdapter = testAdapter; | 
| 99 | ············result = pm.Objects<Mitarbeiter>().OrderBy(m=>m.Nachname).Skip(0).Take(2).ResultTable; | 
| 100 | ············Assert.That( result.Count == 1 ); | 
| 101 | Assert. That( testAdapter. Text. IndexOf( "QueryCache" ) == -1 ) ; | 
| 102 | ········} | 
| 103 | ····} | 
| 104 | } | 
| 105 | 
New Commit (a04c7be)
			
| 1 | using Formfakten. TestLogger; | 
| 2 | using NUnit.Framework; | 
| 3 | using Reisekosten.Personal; | 
| 4 | |
| 5 | namespace NdoUnitTests | 
| 6 | { | 
| 7 | ····[TestFixture] | 
| 8 | public class QueryCacheTests : NDOTest | 
| 9 | ····{ | 
| 10 | ········public QueryCacheTests() | 
| 11 | ········{ | 
| 12 | ········} | 
| 13 | ········void CreateObject() | 
| 14 | ········{ | 
| 15 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 16 | ············Mitarbeiter m = new Mitarbeiter(); | 
| 17 | ············m.Vorname = "Mirko"; | 
| 18 | ············m.Nachname = "Matytschak"; | 
| 19 | ············pm.MakePersistent( m ); | 
| 20 | ············pm.Save(); | 
| 21 | ········} | 
| 22 | |
| 23 | ········[TearDown] | 
| 24 | ········public void TearDown() | 
| 25 | ········{ | 
| 26 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 27 | ············pm.Objects<Mitarbeiter>().DeleteDirectly(); | 
| 28 | ············Logger.ClearTestLogs(); | 
| 29 | ········} | 
| 30 | |
| 31 | ········[Test] | 
| 32 | ········public void TestSimpleQuery() | 
| 33 | ········{ | 
| 34 | ············CreateObject(); | 
| 35 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 36 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 37 | ············pm.UseQueryCache = true; | 
| 38 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 39 | ············Assert.That( result.Count == 1 ); | 
| 40 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 41 | ············result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 42 | ············Assert.That( result.Count == 1 ); | 
| 43 | var logs = Logger. FindLogsWith( "Getting results from QueryCache" ) ; | 
| 44 | ············Assert.That( logs.Count > 0 ); | 
| 45 | ········} | 
| 46 | |
| 47 | ········[Test] | 
| 48 | ········public void QueryCacheCanBeSwitchedOff() | 
| 49 | ········{ | 
| 50 | ············CreateObject(); | 
| 51 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 52 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 53 | ············pm.UseQueryCache = false; | 
| 54 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 55 | ············Assert.That( result.Count == 1 ); | 
| 56 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 57 | ············result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 58 | ············Assert.That( result.Count == 1 ); | 
| 59 | var logs = Logger. FindLogsWith( "QueryCache" ) ; | 
| 60 | ············Assert.That( logs.Count == 0 ); | 
| 61 | ········} | 
| 62 | |
| 63 | ········[Test] | 
| 64 | ········public void DifferentQueryDoesntUseTheCache() | 
| 65 | ········{ | 
| 66 | ············CreateObject(); | 
| 67 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 68 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 69 | ············pm.UseQueryCache = true; | 
| 70 | ············var result = pm.Objects<Mitarbeiter>().ResultTable; | 
| 71 | ············Assert.That( result.Count == 1 ); | 
| 72 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 73 | ············result = pm.Objects<Mitarbeiter>().Where(m=>m.Vorname == "Mirko").ResultTable; | 
| 74 | ············Assert.That( result.Count == 1 ); | 
| 75 | var logs = Logger. FindLogsWith( "QueryCache" ) ; | 
| 76 | ············Assert.That( logs.Count == 0 ); | 
| 77 | ········} | 
| 78 | |
| 79 | ········[Test] | 
| 80 | ········public void TakeAndSkipDontUseTheSameCacheResult() | 
| 81 | ········{ | 
| 82 | ············CreateObject(); | 
| 83 | ············var pm = PmFactory.NewPersistenceManager(); | 
| 84 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 0 ) ); | 
| 85 | ············pm.UseQueryCache = true; | 
| 86 | ············var result = pm.Objects<Mitarbeiter>().OrderBy(m=>m.Nachname).Skip(0).Take(1).ResultTable; | 
| 87 | ············Assert.That( result.Count == 1 ); | 
| 88 | ············Assert.That( pm.QueryCache.Count, Is.EqualTo( 1 ) ); | 
| 89 | ············result = pm.Objects<Mitarbeiter>().OrderBy(m=>m.Nachname).Skip(0).Take(2).ResultTable; | 
| 90 | ············Assert.That( result.Count == 1 ); | 
| 91 | var logs = Logger. FindLogsWith( "QueryCache" ) ; | 
| 92 | ············Assert.That( logs.Count == 0 ); | 
| 93 | ········} | 
| 94 | ····} | 
| 95 | } | 
| 96 |