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();
        }
Пример #2
0
 public static object RemoteCallback(object dummy)
 {
     rootedClient = AmbienceClient.Connect(new AmbienceClientConfiguration()
     {
         Port = PortNumber
     });
     rootedClient.Container.DeleteAll();
     return(null);
 }
Пример #3
0
 public void ContainerIsAWrapperForDb4o()
 {
     using (AmbienceClient client = AmbienceClient.Connect(new AmbienceClientConfiguration()
     {
         Port = PortNumber
     }))
     {
         Assert.IsInstanceOfType(typeof(Db4oAmbientDataContainer), client.Container);
     }
 }
Пример #4
0
        public void ContainerThrowsIfDisposed()
        {
            using (AmbienceClient client = AmbienceClient.Connect(new AmbienceClientConfiguration()
            {
                Port = PortNumber
            }))
            {
                client.Dispose();

                Assert.Throws <ObjectDisposedException>(() => GC.KeepAlive(client.Container));
            }
        }
Пример #5
0
        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>());
            }
        }
Пример #6
0
        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 = "******" }
                }));
            }
        }
Пример #7
0
        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 }
                }));
            }
        }
Пример #8
0
 public void ConnectThrowsIfConfigIsNull()
 {
     Assert.Throws <ArgumentNullException>(() => AmbienceClient.Connect(null));
 }