public void TestVersionInc() { Helper.DropAllCollections(); var countries = new List <Country>(); var c = new Country { Code = "NL", Name = "Holanda" }; c.Save(); Assert.AreEqual(1, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); c.Save(); Assert.AreEqual(2, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); c.Save(); Assert.AreEqual(3, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); }
public void TestCollectionExtensions() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); c = new Country { Code = "US", Name = "Estados Unidos" }; c.Save(); var countries = new List <Country>(); countries.MongoFind(); Assert.AreEqual(countries.Count, 3); countries.MongoFind(MongoQuery <Country> .Eq(co => co.Code, "ES")); Assert.AreEqual(countries.Count, 1); Assert.AreEqual(countries[0].Code, "ES"); countries.MongoFind( Builders <Country> .Filter.Or(MongoQuery <Country> .Eq(co => co.Code, "ES"), MongoQuery <Country> .Eq(co => co.Code, "UK"))); Assert.AreEqual(countries.Count, 2); }
public void TestDelete() { Helper.DropAllCollections(); var c = new Country { Code = "NL", Name = "Holanda" }; c.Save(); var countries = new CountryCollection(); countries.Find(X => X.Code, "NL"); Assert.AreEqual(1, countries.Count); foreach (Country country in countries) { country.Delete(); } //TODO: Pruebas Replica Set //System.Threading.Thread.Sleep(5000); countries.Find(X => X.Code, "NL"); Assert.AreEqual(0, countries.Count); }
public void TestOriginalValue() { Helper.DropAllCollections(); var c = new Country {Code = "ES", Name = "España"}; c.Save(); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); p.Name = "Juan Sin Miedo"; object originalName = p.GetOriginalObject().Name; Assert.AreEqual(originalName.ToString(), "Pepito Perez"); }
public void Cursor() { Helper.DropAllCollections(); for (int i = 0; i < 50; i++) { Country c = new Country(); c.Code = "C" + i.ToString(); c.Name = "Name" + i.ToString(); c.Save(); } CountryCollection col = new CountryCollection(); col.Find().Sort(col.Sort.Descending("Code")); Console.WriteLine(col.Count); foreach (var c in col) { Console.WriteLine(c.Code); } col.AddIncludeFields("Code"); col.AddExcludeFields("Name"); col.Find(C => C.Name, "Name%"); foreach (var c in col) { Console.WriteLine(c.Code + " | " + c.Name); } }
public void Cursor() { Helper.DropAllCollections(); for (int i = 0; i < 50; i++) { Country c = new Country(); c.Code = "C" + i.ToString(); c.Name = "Name" + i.ToString(); c.Save(); } CountryCollection col = new CountryCollection(); col.Find().Sort(col.Sort.Descending("Code")); Console.WriteLine(col.Count); foreach (var c in col) { Console.WriteLine(c.Code); } col.AddIncludeFields("Code"); col.AddExcludeFields("Name"); col.Find(C=>C.Name, "Name%"); foreach (var c in col) { Console.WriteLine(c.Code + " | " + c.Name); } }
public void TestPerfFillByKeyNormalVsExtensionMethod() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); Stopwatch timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { var country = new Country(); country.FillByKey("ES"); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para ExtensionMethod: {0}", timer.Elapsed)); //Elapsed para ExtensionMethod: 00:04:38.5479462 timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { MongoMapper <Country> .FindByKey("ES"); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para StaticMethod: {0}", timer.Elapsed)); //Elapsed para StaticMethod: 00:04:27.1441065 }
public void TestPerfFillByKeyNormalVsExtensionMethod() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); Stopwatch timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { var country = new Country(); country.FillByKey("ES"); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para ExtensionMethod: {0}", timer.Elapsed)); //Elapsed para ExtensionMethod: 00:04:38.5479462 timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { MongoMapper<Country>.FindByKey("ES"); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para StaticMethod: {0}", timer.Elapsed)); //Elapsed para StaticMethod: 00:04:27.1441065 }
public void TestAddingSaveToQueue() { Helper.DropAllCollections(); using (var t = new MongoMapperTransaction()) { var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); var countries1 = new List<Country>(); countries1.MongoFind(); Assert.AreEqual(0, countries1.Count); var c2 = new Country {Code = "ES", Name = "España"}; c2.Save(); var countries2 = new List<Country>(); countries2.MongoFind(); Assert.AreEqual(0, countries2.Count); var c3 = new Country {Code = "US", Name = "USA"}; c3.Save(); var countries3 = new List<Country>(); countries3.MongoFind(); Assert.AreEqual(0, countries3.Count); Assert.AreEqual(3, t.QueueLenght); t.RollBack(); Assert.AreEqual(0, t.QueueLenght); } var countries = new List<Country>(); countries.MongoFind(); Assert.AreEqual(0, countries.Count); }
public void TestPop() { Helper.DropAllCollections(); var c = new Country { Code = "PT", Name = "Portugal" }; c.Save(); c = new Country { Code = "ES", Name = "España" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); c = new Country { Code = "US", Name = "Estados Unidos" }; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "PT"); Assert.AreEqual(3, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "ES"); Assert.AreEqual(2, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "UK"); Assert.AreEqual(1, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "US"); Assert.AreEqual(0, countries.Count); c = countries.Pop(); Assert.IsNull(c); }
public void TestPopCustomSort() { Helper.DropAllCollections(); var c = new Country { Code = "A", Name = "A" }; c.Save(); c = new Country { Code = "B", Name = "B" }; c.Save(); c = new Country { Code = "C", Name = "C" }; c.Save(); c = new Country { Code = "D", Name = "D" }; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4, countries.Count); c = countries.Pop(new BsonDocument(), countries.Sort.Ascending(C => C.Code)); Assert.AreEqual(c.Code, "A"); Assert.AreEqual(3, countries.Count); c = countries.Pop(new BsonDocument(), countries.Sort.Ascending(C => C.Code)); Assert.AreEqual(c.Code, "B"); Assert.AreEqual(2, countries.Count); c = countries.Pop(new BsonDocument(), countries.Sort.Ascending(C => C.Code)); Assert.AreEqual(c.Code, "C"); Assert.AreEqual(1, countries.Count); c = countries.Pop(new BsonDocument(), countries.Sort.Ascending(C => C.Code)); Assert.AreEqual(c.Code, "D"); Assert.AreEqual(0, countries.Count); c = countries.Pop(new BsonDocument(), countries.Sort.Ascending(C => C.Code)); Assert.IsNull(c); }
public void TestIncId() { Helper.DropAllCollections(); for (int i = 0; i < 100; i++) { var c = new Country {Code = "ES_" + i.ToString(), Name = "España"}; c.Save(); Assert.AreEqual(c.m_id, i + 1); } }
public void TestChildIncrementalId() { Helper.DropAllCollections(); var c = new Country {Code = "ES", Name = "España"}; c.Save(); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child {ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez"}); p.Save(); var Persons = new List<Person>(); Persons.MongoFind(); long index = 1; foreach (Person person in Persons) { foreach (Child child in person.Childs) { Assert.AreEqual(child._id, index); index ++; } } }
public void TestEvents() { Helper.DropAllCollections(); var c = new Country {Code = "FR", Name = "España"}; c.OnBeforeInsert += (s, e) => { ((Country) s).Name = "Francia"; }; c.Save(); var c3 = MongoMapper<Country>.FindByKey("FR"); Assert.AreEqual(c3.Name, "Francia"); }
public void TestIsLastVersion() { Helper.DropAllCollections(); var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); Assert.AreEqual(true, c.IsLastVersion()); c.m_dv = 99; Assert.AreEqual(false, c.IsLastVersion(true)); }
public void Insert() { Helper.DropAllCollections(); Parallel.For( 0, 10, i => { var c = new Country {Code = i.ToString(), Name = String.Format("Nombre {0}", i)}; c.Save(); }); }
public void TestIncId() { Helper.DropAllCollections(); for (int i = 0; i < 100; i++) { var c = new Country { Code = "ES_" + i.ToString(), Name = "España" }; c.Save(); Assert.AreEqual(c.m_id, i + 1); } }
public void TestVersionInc() { Helper.DropAllCollections(); var countries = new List<Country>(); var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); Assert.AreEqual(1, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); c.Save(); Assert.AreEqual(2, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); c.Save(); Assert.AreEqual(3, c.m_dv); countries.MongoFind(); Assert.AreEqual(1, countries.Count); }
public void TestPopCustomSort() { Helper.DropAllCollections(); var c = new Country { Code = "A", Name = "A" }; c.Save(); c = new Country { Code = "B", Name = "B" }; c.Save(); c = new Country { Code = "C", Name = "C" }; c.Save(); c = new Country { Code = "D", Name = "D" }; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4, countries.Count); c = countries.Pop(Query.Null, SortBy<Country>.Ascending(C=>C.Code)); Assert.AreEqual(c.Code, "A"); Assert.AreEqual(3, countries.Count); c = countries.Pop(Query.Null, SortBy<Country>.Ascending(C=>C.Code)); Assert.AreEqual(c.Code, "B"); Assert.AreEqual(2, countries.Count); c = countries.Pop(Query.Null, SortBy<Country>.Ascending(C=>C.Code)); Assert.AreEqual(c.Code, "C"); Assert.AreEqual(1, countries.Count); c = countries.Pop(Query.Null, SortBy<Country>.Ascending(C=>C.Code)); Assert.AreEqual(c.Code, "D"); Assert.AreEqual(0, countries.Count); c = countries.Pop(Query.Null, SortBy<Country>.Ascending(C=>C.Code)); Assert.IsNull(c); }
public void TestPop() { Helper.DropAllCollections(); var c = new Country { Code = "PT", Name = "Portugal" }; c.Save(); c = new Country { Code = "ES", Name = "España"}; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido"}; c.Save(); c = new Country { Code = "US", Name = "Estados Unidos"}; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4 , countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "PT"); Assert.AreEqual(3, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "ES"); Assert.AreEqual(2, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "UK"); Assert.AreEqual(1, countries.Count); c = countries.Pop(); Assert.AreEqual(c.Code, "US"); Assert.AreEqual(0, countries.Count); c = countries.Pop(); Assert.IsNull(c); }
public void TestPopCustomSortCustomQuery() { Helper.DropAllCollections(); var c = new Country { Code = "A", Name = "1" }; c.Save(); c = new Country { Code = "B", Name = "1" }; c.Save(); c = new Country { Code = "C", Name = "C" }; c.Save(); c = new Country { Code = "D", Name = "1" }; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4, countries.Count); c = countries.Pop(MongoQuery <Country> .Eq(C => C.Name, "1"), countries.Sort.Descending(C => C.Code)); Assert.AreEqual(c.Code, "D"); Assert.AreEqual(3, countries.Count); c = countries.Pop(MongoQuery <Country> .Eq(C => C.Name, "1"), countries.Sort.Descending(C => C.Code)); Assert.AreEqual(c.Code, "B"); Assert.AreEqual(2, countries.Count); c = countries.Pop(MongoQuery <Country> .Eq(C => C.Name, "1"), countries.Sort.Descending(C => C.Code)); Assert.AreEqual(c.Code, "A"); Assert.AreEqual(1, countries.Count); c = countries.Pop(MongoQuery <Country> .Eq(C => C.Name, "1"), countries.Sort.Descending(C => C.Code)); Assert.IsNull(c); }
public void Test() { Helper.DropAllCollections(); var country = new Country { Code = "NL", Name = "Holanda" }; country.Save(); country = new Country { Code = "UK", Name = "Reino Unido" }; country.Save(); country = new Country { Code = "ES", Name = "España" }; country.Save(); var col = new CountryCollection { FromPrimary = false }; col.Find(); foreach (Country c in col) { Console.WriteLine(c.Name); } col.Find().Limit(1); //Console.WriteLine(col.Cursor.Explain().ToJson()); Assert.AreEqual(1, col.Count); Assert.AreEqual(3, col.Total); col = new CountryCollection { FromPrimary = true }; col.Find().Limit(3).Sort(col.Sort.Ascending(C => C.Name)); Assert.AreEqual(3, col.Count); Assert.AreEqual("ES", col.First().Code); col.Find(MongoQuery <Country> .Eq(C => C.Code, "NL")); Assert.AreEqual("NL", col.First().Code); //TODO: No esta implementado el last Assert.AreEqual("NL", col.Last().Code); }
public void Insert() { Helper.DropAllCollections(); Parallel.For( 0, 10, i => { var c = new Country { Code = i.ToString(), Name = String.Format("Nombre {0}", i) }; c.Save(); }); }
public void TestEvents() { Helper.DropAllCollections(); var c = new Country { Code = "FR", Name = "España" }; c.OnBeforeInsert += (s, e) => { ((Country)s).Name = "Francia"; }; c.Save(); var c3 = MongoMapper <Country> .FindByKey("FR"); Assert.AreEqual(c3.Name, "Francia"); }
public void TestMultiInsert() { Helper.DropAllCollections(); for (int i = 0; i < 100; i++) { var c = new Country { Code = i.ToString(), Name = String.Format("Nombre {0}", i) }; c.Save(); Assert.AreEqual(i + 1, CountryCollection.Instance.Find().CountAsync().Result); } Assert.AreEqual(100, CountryCollection.Instance.Find().CountAsync().Result); }
public void TestSave() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); var country = new Country(); country.FillByKey("ES"); Assert.AreEqual(country.Code, "ES"); }
public void TestIsLastVersion() { Helper.DropAllCollections(); var c = new Country { Code = "NL", Name = "Holanda" }; c.Save(); Assert.AreEqual(true, c.IsLastVersion()); c.m_dv = 99; Assert.AreEqual(false, c.IsLastVersion(true)); }
public void TestParallelMultiInsert() { Helper.DropAllCollections(); Parallel.For( 0, 100, i => { var c = new Country { Code = i.ToString(), Name = String.Format("Nombre {0}", i) }; c.Save(); }); Assert.AreEqual(100, CountryCollection.Instance.Find().CountAsync().Result); }
public void TestPerfMongoFindNormalVsExtensionMethods() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); c = new Country { Code = "US", Name = "Estados Unidos" }; c.Save(); Stopwatch timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { var countries = new List <Country>(); countries.MongoFind( Builders <Country> .Filter.Or(MongoQuery <Country> .Eq(co => co.Code, "ES"), MongoQuery <Country> .Eq(co => co.Code, "UK"))); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para ExtensionMethod: {0}", timer.Elapsed)); //Elapsed para ExtensionMethod: 00:04:29.8042031 timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { CountryCollection mongoCol = new CountryCollection(); mongoCol.Find( mongoCol.Filter.Or(MongoQuery <Country> .Eq(co => co.Code, "ES"), MongoQuery <Country> .Eq(co => co.Code, "UK"))); mongoCol.ToList(); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para StaticMethod: {0}", timer.Elapsed)); //Elapsed para StaticMethod: 00:04:10.1821050 }
public void TestServerDelete() { Helper.DropAllCollections(); for (int i = 0; i < 100; i++) { var c = new Country { Code = i.ToString(), Name = String.Format("Nombre {0}", i) }; c.Save(); Assert.AreEqual(i + 1, CountryCollection.Instance.Find().CountAsync().Result); } MongoMapper <Country> .ServerDelete(MongoQuery <Country> .Eq(c => c.Code, "0")); Assert.AreEqual(99, CountryCollection.Instance.Find().CountAsync().Result); }
public void TestServerUdpate() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); c.ServerUpdate(c.Update.Set(MongoMapperHelper.ConvertFieldName("Country", "Name"), "España 22")); Assert.AreEqual(c.Name, "España 22"); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Save(); p.ServerUpdate( p.Update.Push( MongoMapperHelper.ConvertFieldName("Person", "Childs"), new Child { ID = 2, Age = 3, BirthDate = DateTime.Now.AddDays(57).AddYears(-17), Name = "Laura Perez" })); Assert.AreEqual(p.Childs.Count, 2); Assert.AreEqual(p.Childs[1].Name, "Laura Perez"); }
public void TestFillByKeyExtension() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); var country = new Country(); country.FillByKey("ES"); Assert.AreEqual(country.Code, "ES"); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); long id = p.m_id; p = new Person(); p.FillByKey(id); }
public void Test() { Helper.DropAllCollections(); var country = new Country { Code = "NL", Name = "Holanda" }; country.Save(); country = new Country { Code = "UK", Name = "Reino Unido" }; country.Save(); country = new Country { Code = "ES", Name = "España" }; country.Save(); var col = new CountryCollection {FromPrimary = false}; col.Find(); foreach (Country c in col) { Console.WriteLine(c.Name); } col.Find().Limit(1); //Console.WriteLine(col.Cursor.Explain().ToJson()); Assert.AreEqual(1, col.Count); Assert.AreEqual(3, col.Total); col = new CountryCollection {FromPrimary = true}; col.Find().Limit(3).Sort(col.Sort.Ascending(C=>C.Name)); Assert.AreEqual(3, col.Count); Assert.AreEqual("ES", col.First().Code); col.Find(MongoQuery<Country>.Eq(C => C.Code, "NL")); Assert.AreEqual("NL", col.First().Code); //TODO: No esta implementado el last Assert.AreEqual("NL", col.Last().Code); }
public void TestDelete() { Helper.DropAllCollections(); var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); var countries = new CountryCollection(); countries.Find(X=>X.Code, "NL"); Assert.AreEqual(1,countries.Count); foreach (Country country in countries) { country.Delete(); } //TODO: Pruebas Replica Set //System.Threading.Thread.Sleep(5000); countries.Find(X=>X.Code, "NL"); Assert.AreEqual(0, countries.Count); }
public void TestDelete() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "ES", Name = "España" }; c.Save(); c.FillByKey("ES"); c.Delete(); //TODO: Pruebas Replica Set //System.Threading.Thread.Sleep(5000); var country = new List <Country>(); country.MongoFind(); Assert.AreEqual(0, country.Count); }
public void TestPerfMongoFindNormalVsExtensionMethods() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); c = new Country {Code = "UK", Name = "Reino Unido"}; c.Save(); c = new Country {Code = "US", Name = "Estados Unidos"}; c.Save(); Stopwatch timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { var countries = new List<Country>(); countries.MongoFind( Builders<Country>.Filter.Or(MongoQuery<Country>.Eq(co => co.Code, "ES"), MongoQuery<Country>.Eq(co => co.Code, "UK"))); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para ExtensionMethod: {0}", timer.Elapsed)); //Elapsed para ExtensionMethod: 00:04:29.8042031 timer = Stopwatch.StartNew(); for (int i = 0; i < 1000000; i++) { CountryCollection mongoCol = new CountryCollection(); mongoCol.Find( mongoCol.Filter.Or(MongoQuery<Country>.Eq(co=>co.Code, "ES"), MongoQuery<Country>.Eq(co => co.Code, "UK"))); mongoCol.ToList(); } timer.Stop(); Console.WriteLine(string.Format("Elapsed para StaticMethod: {0}", timer.Elapsed)); //Elapsed para StaticMethod: 00:04:10.1821050 }
public void TestUdpate() { Helper.DropAllCollections(); var c = new Country { Code = "ES", Name = "España" }; c.Save(); var c2 = MongoMapper <Country> .FindByKey("ES"); c2.Name = "España Up"; c2.Save(); var c3 = MongoMapper <Country> .FindByKey("ES"); Assert.AreEqual(c3.Name, "España Up"); var Countries = CountryCollection.Instance; Countries.Find(x => x.Code, "ES"); Assert.AreEqual(Countries.Count, 1); }
public void Test() { Helper.DropAllCollections(); var country = new Country { Code = "NL", Name = "Holanda" }; country.Save(); country = new Country { Code = "UK", Name = "Reino Unido" }; country.Save(); country = new Country { Code = "ES", Name = "España" }; country.Save(); var col = new CountryCollection {FromPrimary = false}; col.Find().SetLimit(1); Console.WriteLine(col.Cursor.Explain().ToJson()); Assert.AreEqual(1, col.Count); Assert.AreEqual(3, col.Total); col = new CountryCollection {FromPrimary = true}; col.Find().SetLimit(3).SetSortOrder(SortBy<Country>.Ascending(C=>C.Name)); Assert.AreEqual(3, col.Count); Assert.AreEqual("ES", col.First().Code); col.Find(Query<Country>.EQ(C => C.Code, "NL")); Assert.AreEqual("NL", col.First().Code); Assert.AreEqual("NL", col.Last().Code); foreach (Country c in col) { } }
public void TestOriginalValue() { Helper.DropAllCollections(); var c = new Country { Code = "ES", Name = "España" }; c.Save(); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); p.Name = "Juan Sin Miedo"; object originalName = p.GetOriginalObject().Name; Assert.AreEqual(originalName.ToString(), "Pepito Perez"); }
public void TestInsert() { Helper.DropAllCollections(); //Paris var geoArea = new GeoArea(); geoArea.type = "Polygon"; var coordinates = new List<double[]>(); coordinates.Add(new double[] { 48.979766324449706, 2.098388671875 }); coordinates.Add(new double[] { 48.972555195463336, 2.5982666015625 }); coordinates.Add(new double[] { 48.683254235765325, 2.603759765625 }); coordinates.Add(new double[] { 48.66874533279169, 2.120361328125 }); coordinates.Add(new double[] { 48.979766324449706, 2.098388671875 }); geoArea.coordinates = new [] {coordinates.ToArray()}; //Insert de Paises var c = new Country {Code = "es", Name = "España", Area = geoArea}; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country { Code = "UK", Name = "Reino Unido", Area = geoArea}; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido", Area = geoArea }; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (DuplicateKeyException)); } c = new Country { Code = "US", Name = "Estados Unidos", Area = geoArea }; c.Save(); var countries = new CountryCollection(); countries.Find(x=>x.Code, "ES"); Assert.AreEqual(countries.Count, 1); countries.Find(x=>x.Code, "UK"); Assert.AreEqual(countries.Count, 1); countries.Find(x=>x.Code, "US"); Assert.AreEqual(countries.Count, 1); countries.Find(); Assert.AreEqual(countries.Count, 3); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child {ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez"}); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child {ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano"}); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "US", BankBalance = decimal.Parse("10000,00") }; p.Save(); var persons = new List<Person>(); persons.MongoFind(); Assert.AreEqual(persons.Count, 5); }
public void TestUdpate() { Helper.DropAllCollections(); var c = new Country {Code = "ES", Name = "España"}; c.Save(); var c2 = MongoMapper<Country>.FindByKey("ES"); c2.Name = "España Up"; c2.Save(); var c3 = MongoMapper<Country>.FindByKey("ES"); Assert.AreEqual(c3.Name, "España Up"); var Countries = CountryCollection.Instance; Countries.Find(x=>x.Code, "ES"); Assert.AreEqual(Countries.Count, 1); }
public void TestPopCustomSortCustomQuery() { Helper.DropAllCollections(); var c = new Country { Code = "A", Name = "1" }; c.Save(); c = new Country { Code = "B", Name = "1" }; c.Save(); c = new Country { Code = "C", Name = "C" }; c.Save(); c = new Country { Code = "D", Name = "1" }; c.Save(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(4, countries.Count); c = countries.Pop(MongoQuery<Country>.Eq(C => C.Name, "1"),countries.Sort.Descending(C=>C.Code)); Assert.AreEqual(c.Code, "D"); Assert.AreEqual(3, countries.Count); c = countries.Pop(MongoQuery<Country>.Eq(C => C.Name, "1"),countries.Sort.Descending(C => C.Code)); Assert.AreEqual(c.Code, "B"); Assert.AreEqual(2, countries.Count); c = countries.Pop(MongoQuery<Country>.Eq(C => C.Name, "1"),countries.Sort.Descending(C => C.Code)); Assert.AreEqual(c.Code, "A"); Assert.AreEqual(1, countries.Count); c = countries.Pop(MongoQuery<Country>.Eq(C => C.Name, "1"),countries.Sort.Descending(C => C.Code)); Assert.IsNull(c); }
public void TestFindByPk() { //Llenamos datos Helper.DropAllCollections(); ConfigManager.Out = Console.Out; var c = new Country { Code = "ES", Name = "España" }; c.Save(); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child { ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez" }); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child { ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano" }); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "ES", BankBalance = decimal.Parse("100,00") }; p.Save(); List <Person> plist = MongoMapperCollection <Person> .Instance.Find().ToListAsync().Result; var p2 = new Person(); p2.FillByKey(plist[0].m_id); p2.Name = "FindBYKey Name"; p2.Save(); var Persons = MongoMapperCollection <Person> .Instance; plist = Persons.Find(x => x.m_id, p2.m_id).ToListAsync().Result; Assert.AreEqual(1, plist.Count); Assert.AreEqual(plist[0].Name, "FindBYKey Name"); c = new Country(); //Assert.Throws(typeof(FindByKeyNotFoundException), c.FillByKey("XXXXXX")); }
public void TestInsert() { Helper.DropAllCollections(); //Paris var geoArea = new GeoArea(); geoArea.type = "Polygon"; var coordinates = new List <double[]>(); coordinates.Add(new double[] { 48.979766324449706, 2.098388671875 }); coordinates.Add(new double[] { 48.972555195463336, 2.5982666015625 }); coordinates.Add(new double[] { 48.683254235765325, 2.603759765625 }); coordinates.Add(new double[] { 48.66874533279169, 2.120361328125 }); coordinates.Add(new double[] { 48.979766324449706, 2.098388671875 }); geoArea.coordinates = new [] { coordinates.ToArray() }; //Insert de Paises var c = new Country { Code = "es", Name = "España", Area = geoArea }; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country { Code = "UK", Name = "Reino Unido", Area = geoArea }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido", Area = geoArea }; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(DuplicateKeyException)); } c = new Country { Code = "US", Name = "Estados Unidos", Area = geoArea }; c.Save(); var countries = new CountryCollection(); countries.Find(x => x.Code, "ES"); Assert.AreEqual(countries.Count, 1); countries.Find(x => x.Code, "UK"); Assert.AreEqual(countries.Count, 1); countries.Find(x => x.Code, "US"); Assert.AreEqual(countries.Count, 1); countries.Find(); Assert.AreEqual(countries.Count, 3); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child { ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez" }); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child { ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano" }); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "US", BankBalance = decimal.Parse("10000,00") }; p.Save(); var persons = new List <Person>(); persons.MongoFind(); Assert.AreEqual(persons.Count, 5); }
public void Test() { Helper.DropAllCollections(); ConfigManager.Out = Console.Out; var c = new Country {Code = "es", Name = "España"}; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country {Code = "UK", Name = "Reino Unido"}; c.Save(); c = new Country {Code = "UK", Name = "Reino Unido"}; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (DuplicateKeyException)); } using (var t = new MongoMapperTransaction()) { var c2 = new Country {Code = "US", Name = "Francia"}; c2.OnBeforeInsert += (s, e) => { ((Country) s).Name = "Estados Unidos"; }; c2.Save(); t.Commit(); } var c3 = new Country(); c3.FillByKey("US"); Assert.AreEqual(c3.Name, "Estados Unidos"); if (!c3.IsLastVersion()) c3.FillFromLastVersion(); var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(countries.Count, 3); countries.Find().Limit(2).Sort(countries.Sort.Ascending(C=>C.Name)); Assert.AreEqual(countries.Count, 2); Assert.AreEqual(countries.Total, 3); countries.Find( countries.Filter.Or(MongoQuery<Country>.Eq(co => co.Code, "ES"), MongoQuery<Country>.Eq(co => co.Code, "UK"))); Assert.AreEqual(countries.Count, 2); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "XXXXX", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); try { p.Save(); Assert.Fail(); } catch (ValidateUpRelationException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidateUpRelationException)); p.Country = "ES"; p.Save(); } p.ServerUpdate( p.Update.Push( MongoMapperHelper.ConvertFieldName("Person","Childs"), new Child {ID = 2, Age = 2, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"})); var persons = new List<Person>(); persons.MongoFind(); persons.MongoFind("Childs.Age", 2); Assert.AreEqual(1, persons.Count); }
public void TestFillByKeyExtension() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); var country = new Country(); country.FillByKey("ES"); Assert.AreEqual(country.Code, "ES"); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); long id = p.m_id; p = new Person(); p.FillByKey(id); }
public void TestRelations() { Helper.DropAllCollections(); var c = new Country {Code = "ES", Name = "España"}; c.Save(); c = new Country {Code = "UK", Name = "Reino Unido"}; c.Save(); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "XXXXX", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); try { p.Save(); } catch (Exception ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidateUpRelationException)); p.Country = "ES"; p.Save(); } c = MongoMapper.FindByKey<Country>("ES"); try { c.Delete(); } catch (Exception ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidateDownRelationException)); List<Person> Persons = c.GetRelation<Person>("Person,Country"); foreach (Person p2 in Persons) { p2.Country = "UK"; p2.Save(); } c.Delete(); } c = MongoMapper.FindByKey<Country>("UK"); List<Person> PersonasEnUK = c.GetRelation<Person>("Person,Country"); foreach (Person PersonInUK in PersonasEnUK) { Assert.AreEqual(PersonInUK.Country, "UK"); Assert.AreEqual(PersonInUK.GetRelation<Country>("Country,Code").First().Code, "UK"); } }
public void TestInsert() { Helper.DropAllCollections(); //Insert de Paises var c = new Country { Code = "es", Name = "España" }; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(DuplicateKeyException)); } c = new Country { Code = "US", Name = "Estados Unidos" }; c.Save(); var Countries = new List <Country>(); Countries.MongoFind(C => C.Code, "ES"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(C => C.Code, "UK"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(C => C.Code, "US"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(); Assert.AreEqual(Countries.Count, 3); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child { ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez" }); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child { ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano" }); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "US", BankBalance = decimal.Parse("100,00") }; p.Save(); var persons = new List <Person>(); persons.MongoFind(); Assert.AreEqual(persons.Count, 5); persons.MongoFind("Childs.Age", 2); Assert.AreEqual(persons.Count, 1); }
public void TestInsert() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "es", Name = "España"}; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country {Code = "UK", Name = "Reino Unido"}; c.Save(); c = new Country {Code = "UK", Name = "Reino Unido"}; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof (DuplicateKeyException)); } c = new Country {Code = "US", Name = "Estados Unidos"}; c.Save(); var Countries = new List<Country>(); Countries.MongoFind(C=>C.Code, "ES"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(C=>C.Code, "UK"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(C=>C.Code, "US"); Assert.AreEqual(Countries.Count, 1); Countries.MongoFind(); Assert.AreEqual(Countries.Count, 3); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child {ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez"}); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child {ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano"}); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "US", BankBalance = decimal.Parse("100,00") }; p.Save(); var persons = new List<Person>(); persons.MongoFind(); Assert.AreEqual(persons.Count, 5); persons.MongoFind("Childs.Age", 2); Assert.AreEqual(persons.Count, 1); }
public void TestSave() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); var country = new Country(); country.FillByKey("ES"); Assert.AreEqual(country.Code, "ES"); }
public void TestCollectionExtensions() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); c = new Country {Code = "UK", Name = "Reino Unido"}; c.Save(); c = new Country {Code = "US", Name = "Estados Unidos"}; c.Save(); var countries = new List<Country>(); countries.MongoFind(); Assert.AreEqual(countries.Count, 3); countries.MongoFind(MongoQuery<Country>.Eq(co => co.Code, "ES")); Assert.AreEqual(countries.Count, 1); Assert.AreEqual(countries[0].Code, "ES"); countries.MongoFind( Builders<Country>.Filter.Or(MongoQuery<Country>.Eq(co => co.Code, "ES"), MongoQuery<Country>.Eq(co => co.Code, "UK"))); Assert.AreEqual(countries.Count, 2); }
public void TestRelations() { Helper.DropAllCollections(); var c = new Country { Code = "ES", Name = "España" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "XXXXX", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); try { p.Save(); Assert.Fail(); } catch (ValidateUpRelationException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidateUpRelationException)); p.Country = "ES"; p.Save(); } c = MongoMapper <Country> .FindByKey("ES"); try { c.Delete(); Assert.Fail(); } catch (ValidateDownRelationException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidateDownRelationException)); List <Person> persons = new List <Person>(); persons.MongoFind(C => C.Country, "ES"); foreach (Person p2 in persons) { p2.Country = "UK"; p2.Save(); } c.Delete(); } List <Person> personsInUk = new List <Person>(); personsInUk.MongoFind(C => C.Country, "UK"); foreach (Person personInUk in personsInUk) { Assert.AreEqual(personInUk.Country, "UK"); } }
public void Test() { Helper.DropAllCollections(); ConfigManager.Out = Console.Out; var c = new Country { Code = "es", Name = "España" }; try { c.Save(); Assert.Fail(); } catch (ValidatePropertyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidatePropertyException)); c.Code = "ES"; c.Save(); } c = new Country { Code = "UK", Name = "Reino Unido" }; c.Save(); c = new Country { Code = "UK", Name = "Reino Unido" }; try { c.Save(); Assert.Fail(); } catch (DuplicateKeyException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(DuplicateKeyException)); } using (var t = new MongoMapperTransaction()) { var c2 = new Country { Code = "US", Name = "Francia" }; c2.OnBeforeInsert += (s, e) => { ((Country)s).Name = "Estados Unidos"; }; c2.Save(); t.Commit(); } var c3 = new Country(); c3.FillByKey("US"); Assert.AreEqual(c3.Name, "Estados Unidos"); if (!c3.IsLastVersion()) { c3.FillFromLastVersion(); } var countries = new CountryCollection(); countries.Find(); Assert.AreEqual(countries.Count, 3); countries.Find().Limit(2).Sort(countries.Sort.Ascending(C => C.Name)); Assert.AreEqual(countries.Count, 2); Assert.AreEqual(countries.Total, 3); countries.Find( countries.Filter.Or(MongoQuery <Country> .Eq(co => co.Code, "ES"), MongoQuery <Country> .Eq(co => co.Code, "UK"))); Assert.AreEqual(countries.Count, 2); var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "XXXXX", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); try { p.Save(); Assert.Fail(); } catch (ValidateUpRelationException ex) { Assert.AreEqual(ex.GetBaseException().GetType(), typeof(ValidateUpRelationException)); p.Country = "ES"; p.Save(); } p.ServerUpdate( p.Update.Push( MongoMapperHelper.ConvertFieldName("Person", "Childs"), new Child { ID = 2, Age = 2, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" })); var persons = new List <Person>(); persons.MongoFind(); persons.MongoFind("Childs.Age", 2); Assert.AreEqual(1, persons.Count); }
public void TestDelete() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); c.FillByKey("ES"); c.Delete(); //TODO: Pruebas Replica Set //System.Threading.Thread.Sleep(5000); var country = new List<Country>(); country.MongoFind(); Assert.AreEqual(0, country.Count); }
public void TestGroupSum() { Helper.DropAllCollections(); var c = new Country { Code = "NL", Name = "Holanda" }; c.Save(); c = new Country { Code = "ES", Name = "SPAIN" }; c.Save(); for (int i = 0; i < 10; i++) { var p = new Person { Name = i.ToString(), Age = i, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Save(); } for (int i = 0; i < 5; i++) { var p = new Person { Name = i.ToString(), Age = i, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "NL", BankBalance = decimal.Parse("3500,00") }; p.Save(); } var operations = new[] { new BsonDocument { { //$Country es $c "$group", new BsonDocument { { "_id", "$" + MongoMapperHelper.ConvertFieldName("Person", "Country") }, { "Total", new BsonDocument { { "$sum", 1 } } }, } } } }; var mongoresult = MongoMapper <Person> .Aggregate(operations); foreach (var document in mongoresult) { if (document["_id"].ToString() == "ES") { Assert.AreEqual(10, int.Parse(document["Total"].ToString())); } else if (document["_id"].ToString() == "NL") { Assert.AreEqual(5, int.Parse(document["Total"].ToString())); } else { throw new InconclusiveException(""); } } }
public void TestErrorInCommitingQueue() { Helper.DropAllCollections(); using (var t = new MongoMapperTransaction()) { try { var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); var countries1 = new List<Country>(); countries1.MongoFind(); Assert.AreEqual(0, countries1.Count); //Lanzara excepcion porque us esta en minusculas var c3 = new Country {Code = "us", Name = "USA"}; c3.Save(); var countries3 = new List<Country>(); countries3.MongoFind(); Assert.AreEqual(0, countries3.Count); Assert.AreEqual(2, t.QueueLenght); t.Commit(); } catch { } } //No deberia haber guardado nada var countries = new List<Country>(); countries.MongoFind(); Assert.AreEqual(0, countries.Count); }
public void TestChildIncrementalId() { Helper.DropAllCollections(); var c = new Country { Code = "ES", Name = "España" }; c.Save(); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child { ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez" }); p.Childs.Add( new Child { ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez" }); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child { ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez" }); p.Save(); var Persons = new List <Person>(); Persons.MongoFind(); long index = 1; foreach (Person person in Persons) { foreach (Child child in person.Childs) { Assert.AreEqual(child._id, index); index++; } } }
public void TestFindByPk() { //Llenamos datos Helper.DropAllCollections(); ConfigManager.Out = Console.Out; var c = new Country {Code = "ES", Name = "España"}; c.Save(); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Childs.Add( new Child {ID = 2, Age = 7, BirthDate = DateTime.Now.AddDays(57).AddYears(-7), Name = "Ana Perez"}); p.Save(); p = new Person { Name = "Juanito Sanchez", Age = 25, BirthDate = DateTime.Now.AddDays(52).AddYears(-38), Married = true, Country = "ES", BankBalance = decimal.Parse("1500,00") }; p.Childs.Add( new Child {ID = 1, Age = 5, BirthDate = DateTime.Now.AddDays(7).AddYears(-5), Name = "Toni Sanchez"}); p.Save(); p = new Person { Name = "Andres Perez", Age = 25, BirthDate = DateTime.Now.AddDays(25).AddYears(-25), Married = false, Country = "ES", BankBalance = decimal.Parse("500,00") }; p.Save(); p = new Person { Name = "Marta Serrano", Age = 28, BirthDate = DateTime.Now.AddDays(28).AddYears(-28), Married = false, Country = "ES", BankBalance = decimal.Parse("9500,00") }; p.Childs.Add( new Child {ID = 1, Age = 2, BirthDate = DateTime.Now.AddDays(2).AddYears(-2), Name = "Toni Serrano"}); p.Save(); p = new Person { Name = "Jonh Smith", Age = 21, BirthDate = DateTime.Now.AddDays(21).AddYears(-21), Married = false, Country = "ES", BankBalance = decimal.Parse("100,00") }; p.Save(); List<Person> plist = MongoMapperCollection<Person>.Instance.Find().ToList(); var p2 = new Person(); p2.FillByKey(plist[0].m_id); p2.Name = "FindBYKey Name"; p2.Save(); var Persons = MongoMapperCollection<Person>.Instance; plist = Persons.Find(x=>x.m_id, p2.m_id).ToList(); Assert.AreEqual(1, plist.Count); Assert.AreEqual(plist[0].Name, "FindBYKey Name"); c = new Country(); //Assert.Throws(typeof(FindByKeyNotFoundException), c.FillByKey("XXXXXX")); }
public void TestServerUdpate() { Helper.DropAllCollections(); //Insert de Paises var c = new Country {Code = "ES", Name = "España"}; c.Save(); c.ServerUpdate(c.Update.Set(MongoMapperHelper.ConvertFieldName("Country", "Name"), "España 22")); Assert.AreEqual(c.Name, "España 22"); //Insert de personas var p = new Person { Name = "Pepito Perez", Age = 35, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Childs.Add( new Child {ID = 1, Age = 10, BirthDate = DateTime.Now.AddDays(57).AddYears(-10), Name = "Juan Perez"}); p.Save(); p.ServerUpdate( p.Update.Push( MongoMapperHelper.ConvertFieldName("Person","Childs"), new Child {ID = 2, Age = 3, BirthDate = DateTime.Now.AddDays(57).AddYears(-17), Name = "Laura Perez"})); Assert.AreEqual(p.Childs.Count, 2); Assert.AreEqual(p.Childs[1].Name, "Laura Perez"); }
public void TestGroupSum() { Helper.DropAllCollections(); var c = new Country {Code = "NL", Name = "Holanda"}; c.Save(); c = new Country {Code = "ES", Name = "SPAIN"}; c.Save(); for (int i = 0; i < 10; i++) { var p = new Person { Name = i.ToString(), Age = i, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "ES", BankBalance = decimal.Parse("3500,00") }; p.Save(); } for (int i = 0; i < 5; i++) { var p = new Person { Name = i.ToString(), Age = i, BirthDate = DateTime.Now.AddDays(57).AddYears(-35), Married = true, Country = "NL", BankBalance = decimal.Parse("3500,00") }; p.Save(); } var operations = new []{ new BsonDocument { { //$Country es $c "$group", new BsonDocument{ { "_id" , "$" + MongoMapperHelper.ConvertFieldName("Person","Country") } , {"Total" , new BsonDocument{ {"$sum",1} } }, } } } }; var mongoresult = MongoMapper.Aggregate<Person>(operations); foreach (var document in mongoresult) { if (document ["_id"].ToString () == "ES") Assert.AreEqual (10, int.Parse (document ["Total"].ToString ())); else if (document ["_id"].ToString () == "NL") Assert.AreEqual (5, int.Parse (document ["Total"].ToString ())); else throw new InconclusiveException (""); } }