public void AmbienceServerRunsWithSpecifiedOptions() { File.Delete("IntegrationTest.db"); ProcessTask task = StartAmbienceServer("/db:IntegrationTest.db /p:" + PortNumber + " /u:Test /pw:LetMeIn"); var config = new AmbienceClientConfiguration() { Port = PortNumber, Credential = new NetworkCredential("Test", "LetMeIn") }; AmbienceClient client = AmbienceClient.Connect(config); IAmbientDataContainer container = client.Container; container.DeleteAll(); container.Store(new Item() { Name = "foo", Value = 42 }); container.Store(new Item() { Name = "bar", Value = 40 }); Assert.AreEqual("foo", (from Item x in container where x.Value == 42 select x.Name).Single()); Assert.AreEqual(0, (from Item x in container where x.Value == 0 select x).Count()); task.Abort(); }
public static object RemoteCallback(object dummy) { rootedClient = AmbienceClient.Connect(new AmbienceClientConfiguration() { Port = PortNumber }); rootedClient.Container.DeleteAll(); return(null); }
public void ContainerIsAWrapperForDb4o() { using (AmbienceClient client = AmbienceClient.Connect(new AmbienceClientConfiguration() { Port = PortNumber })) { Assert.IsInstanceOfType(typeof(Db4oAmbientDataContainer), client.Container); } }
public void ContainerThrowsIfDisposed() { using (AmbienceClient client = AmbienceClient.Connect(new AmbienceClientConfiguration() { Port = PortNumber })) { client.Dispose(); Assert.Throws <ObjectDisposedException>(() => GC.KeepAlive(client.Container)); } }
public void StoresAreAutoCommittedAndVisibleToOtherClients() { Ambient.Data.DeleteAll(); Ambient.Data.Store(new Item { Name = "A", Value = 1 }); using (AmbienceClient alternateClient = AmbienceClient.Connect(Ambient.DefaultClientConfiguration)) { Assert.AreElementsEqual(new[] { new Item { Name = "A", Value = 1 } }, alternateClient.Container.Query <Item>()); } }
public void ServerGrantsAccessToAuthorizedUser() { File.Delete("AmbienceClientTest.db"); using (AmbienceServer server = new AmbienceServer(new AmbienceServerConfiguration() { Port = PortNumber, DatabasePath = @"AmbienceClientTest.db", Credential = { UserName = "******", Password = "******" } })) { server.Start(); Assert.DoesNotThrow(() => AmbienceClient.Connect(new AmbienceClientConfiguration() { Port = PortNumber, Credential = { UserName = "******", Password = "******" } })); } }
public void ServerDeniesAccessToUnauthorizedUser(string userName, string password) { File.Delete("AmbienceClientTest.db"); using (AmbienceServer server = new AmbienceServer(new AmbienceServerConfiguration() { Port = PortNumber, DatabasePath = @"AmbienceClientTest.db", Credential = { UserName = "******", Password = "******" } })) { server.Start(); Assert.Throws <AmbienceException>(() => AmbienceClient.Connect(new AmbienceClientConfiguration() { Port = PortNumber, Credential = { UserName = userName, Password = password } })); } }
public void ConnectThrowsIfConfigIsNull() { Assert.Throws <ArgumentNullException>(() => AmbienceClient.Connect(null)); }