private bool IsServerStale() { //если пользователя нет, значит база была перезалита и локальная база не актуальна using (var session = IntegrationFixture.Factory.OpenSession()) { var user = session.Query <TestUser>().FirstOrDefault(u => u.Login == ServerFixture.DebugLogin()); if (user != null) { serverUserId = user.Id; } return(user == null); } }
//создаем пользователя для ручного тестирования public static void SeedDb() { using (var session = Setup.SessionFactory.OpenSession()) using (session.BeginTransaction()) { var user = session.Query <TestUser>().FirstOrDefault(u => u.Login == ServerFixture.DebugLogin()); if (user != null) { return; } SampleData.CreateUser(session, ServerFixture.DebugLogin()); session.Transaction.Commit(); } }
public void Teardown() { if (restoreUser) { session.Flush(); session.CreateSQLQuery("update Customers.Users set Login = Id;" + "update Customers.Users set Login = :login where Id = :id") .SetParameter("login", ServerFixture.DebugLogin()) .SetParameter("id", userId) .ExecuteUpdate(); } else if (revertToDefaults) { var user = ServerUser(); user.UseAdjustmentOrders = false; } session.Flush(); }
public void Sent_price_settings_changes() { restoreUser = true; SampleData.CreateUser(session, ServerFixture.DebugLogin()); Run(new UpdateCommand()); var price = localSession.Query <Price>().First(p => p.PositionCount > 0); Assert.That(price.Active, Is.True); Assert.That(price.PositionCount, Is.GreaterThan(0)); price.Active = false; //данные хранятся с точностью до секунды, в тестах операция может быть выполнена за одну секунду тогда //команда будет думать что синхронизировать нечего localSession.Refresh(settings); settings.LastUpdate = settings.LastUpdate.Value.AddSeconds(-1); Run(new UpdateCommand()); localSession.Refresh(price); var user = ServerUser(); Assert.That(price.Active, Is.False, "прайс {0}, пользователь {1}", price.Id, user.Id); Assert.That(price.PositionCount, Is.EqualTo(0)); var offersCount = localSession.Query <Offer>().Count(o => o.Price == price); Assert.That(offersCount, Is.EqualTo(0)); var priceSettings = session .CreateSQLQuery("select * from Customers.UserPrices" + " where UserId = :userId and PriceId = :priceId and RegionId = :regionId") .SetParameter("userId", user.Id) .SetParameter("priceId", price.Id.PriceId) .SetParameter("regionId", price.Id.RegionId) .List(); Assert.That(priceSettings.Count, Is.EqualTo(0)); }