Пример #1
0
        public void TestEnqueue2()
        {
            var task1 = _queue[new LogEntryIndex(1)];
            var task2 = _queue[new LogEntryIndex(2)];
            var task3 = _queue[new LogEntryIndex(3)];

            task1.Should().NotBeNull();

            task2.Should().NotBeNull();
            task2.Should().NotBeSameAs(task1);

            task3.Should().NotBeNull();
            task3.Should().NotBeSameAs(task1);

            var accessor = new Accessor();

            accessor.Add(1, new LogEntry("1"));
            accessor.Add(2, new LogEntry("2"));
            accessor.Add(3, new LogEntry("3"));
            _queue.ExecuteAll(accessor);

            task1.IsCompleted.Should().BeTrue();
            task1.Result.Should().Be(new LogEntry("1"));

            task2.IsCompleted.Should().BeTrue();
            task2.Result.Should().Be(new LogEntry("2"));

            task3.IsCompleted.Should().BeTrue();
            task3.Result.Should().Be(new LogEntry("3"));
        }
Пример #2
0
        public void TestEnqueue4()
        {
            var task1 = _queue[new LogEntryIndex(1337)];
            var task2 = _queue[new LogEntryIndex(1337)];

            task2.Should().BeSameAs(task1);

            var task3 = _queue[new LogEntryIndex(1337)];

            task3.Should().BeSameAs(task1);

            _queue.Count.Should().Be(1, "Because multiple accesses to the same row shall be optimized to one single access");

            var row      = new LogEntry("42");
            var accessor = new Accessor();

            accessor.Add(1337, row);
            _queue.ExecuteOne(accessor);

            task1.IsCompleted.Should().BeTrue();
            task1.Result.Should().Be(row);

            task2.IsCompleted.Should().BeTrue();
            task2.Result.Should().Be(row);

            task3.IsCompleted.Should().BeTrue();
            task3.Result.Should().Be(row);
        }
Пример #3
0
        public void TestDictionary()
        {
            TestClass                     tc   = new TestClass();
            Accessor <TestClass>          tca  = new Accessor <TestClass>(tc, supportsNew: true);
            KeyValuePair <string, object> kvp1 = new KeyValuePair <string, object>("Key1", 123);
            KeyValuePair <string, object> kvp2 = new KeyValuePair <string, object>("Key2", 456);
            KeyValuePair <string, object> kvp3 = new KeyValuePair <string, object>("Key3", 789);

            Assert.AreEqual(4, tca.Count);
            tca.Add("PublicAutoProperty", "Value");

            Assert.AreEqual(4, tca.Count);
            Assert.AreEqual("Value", tc.PublicAutoProperty);

            tca.Add(new KeyValuePair <string, object>("PublicAutoProperty", "Value 2"));

            Assert.AreEqual(4, tca.Count);
            Assert.AreEqual("Value 2", tc.PublicAutoProperty);

            tca.Add(kvp1.Key, kvp1.Value);
            tca.Add(kvp2);
            tca.Add(kvp3);

            Assert.AreEqual(7, tca.Count);
            Assert.AreEqual(kvp1.Value, tca[kvp1.Key]);
            Assert.AreEqual(kvp2.Value, tca[kvp2.Key]);
            Assert.AreEqual(kvp3.Value, tca[kvp3.Key]);
            Assert.IsTrue(tca.ContainsKey(kvp1.Key));
            Assert.IsTrue(tca.Contains(kvp2));
            Assert.IsTrue(tca.ContainsKey(kvp3.Key));

            tca.Remove(kvp1.Key);

            Assert.AreEqual(6, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp1.Key));

            tca.Remove(kvp2);

            Assert.AreEqual(5, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp2.Key));

            tca.Clear(false);

            Assert.AreEqual(4, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp3.Key));
        }
Пример #4
0
        public void TestEnqueue3()
        {
            var task1 = _queue[new LogEntryIndex(1337)];
            var task2 = _queue[new LogEntryIndex(1337)];
            var task3 = _queue[new LogEntryIndex(1337)];

            var row      = new LogEntry("42");
            var accessor = new Accessor();

            accessor.Add(1337, row);
            _queue.ExecuteAll(accessor);

            task1.IsCompleted.Should().BeTrue();
            task1.Result.Should().Be(row);

            task2.IsCompleted.Should().BeTrue();
            task2.Result.Should().Be(row);

            task3.IsCompleted.Should().BeTrue();
            task3.Result.Should().Be(row);
        }
Пример #5
0
        public void TestEnqueue5()
        {
            var task1    = _queue[new LogEntryIndex(1337)];
            var row      = new LogEntry("42");
            var accessor = new Accessor();

            accessor.Add(1337, row);
            _queue.ExecuteOne(accessor);

            task1.IsCompleted.Should().BeTrue();
            task1.Result.Should().Be(row);

            _queue.Count.Should().Be(0);
            var task2 = _queue[new LogEntryIndex(1337)];

            task2.Should().NotBeSameAs(task1, "Because completed/cancelled/faulted tasks may not be reused");
            task2.IsCompleted.Should().BeFalse();

            _queue.ExecuteOne(accessor);
            task2.IsCompleted.Should().BeTrue();
            task2.Result.Should().Be(row);
        }
Пример #6
0
        public void TestEnqueue1()
        {
            var task = _queue[new LogEntryIndex(42)];

            task.Should().NotBeNull();
            task.IsCanceled.Should().BeFalse();
            task.IsCompleted.Should().BeFalse();
            task.IsFaulted.Should().BeFalse();

            _queue.Count.Should().Be(1);

            var row      = new LogEntry("hello", "world");
            var accessor = new Accessor();

            accessor.Add(new LogEntryIndex(42), row);
            _queue.ExecuteOne(accessor);

            task.IsCanceled.Should().BeFalse();
            task.IsFaulted.Should().BeFalse();
            task.IsCompleted.Should().BeTrue();
            task.Result.Should().Be(row, "Because the task should've returned the result passed by the factory");
            _queue.Count.Should().Be(0, "Because the only pending task should've been executed");
        }
Пример #7
0
        public void TestDictionary()
        {
            TestClass tc = new TestClass();
            Accessor<TestClass> tca = new Accessor<TestClass>(tc, supportsNew: true);
            KeyValuePair<string, object> kvp1 = new KeyValuePair<string, object>("Key1", 123);
            KeyValuePair<string, object> kvp2 = new KeyValuePair<string, object>("Key2", 456);
            KeyValuePair<string, object> kvp3 = new KeyValuePair<string, object>("Key3", 789);

            Assert.AreEqual(4, tca.Count);
            tca.Add("PublicAutoProperty", "Value");

            Assert.AreEqual(4, tca.Count);
            Assert.AreEqual("Value", tc.PublicAutoProperty);

            tca.Add(new KeyValuePair<string, object>("PublicAutoProperty", "Value 2"));

            Assert.AreEqual(4, tca.Count);
            Assert.AreEqual("Value 2", tc.PublicAutoProperty);

            tca.Add(kvp1.Key, kvp1.Value);
            tca.Add(kvp2);
            tca.Add(kvp3);

            Assert.AreEqual(7, tca.Count);
            Assert.AreEqual(kvp1.Value, tca[kvp1.Key]);
            Assert.AreEqual(kvp2.Value, tca[kvp2.Key]);
            Assert.AreEqual(kvp3.Value, tca[kvp3.Key]);
            Assert.IsTrue(tca.ContainsKey(kvp1.Key));
            Assert.IsTrue(tca.Contains(kvp2));
            Assert.IsTrue(tca.ContainsKey(kvp3.Key));

            tca.Remove(kvp1.Key);

            Assert.AreEqual(6, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp1.Key));

            tca.Remove(kvp2);

            Assert.AreEqual(5, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp2.Key));

            tca.Clear(false);

            Assert.AreEqual(4, tca.Count);
            Assert.IsFalse(tca.ContainsKey(kvp3.Key));
        }
Пример #8
0
        static void Main(string[] args)
        {
            try
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
                builder.DataSource     = "vitaliiserver.database.windows.net";
                builder.UserID         = "vitalii24";
                builder.Password       = "******";
                builder.InitialCatalog = "storeDb";

                using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
                {
                    Console.WriteLine("\nQuery data example:");
                    Console.WriteLine("=========================================\n");

                    connection.Open();
                    StringBuilder sb = new StringBuilder();
                    sb.Append("SELECT  i.Name ");
                    sb.Append("FROM [Item]  as i ");

                    String sql = sb.ToString();

                    using (SqlCommand command = new SqlCommand(sql, connection))
                    {
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Console.WriteLine("{0} ", reader.GetString(0));
                            }
                        }
                    }
                }
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.ReadLine();

            //--------------------------Working  via   data  layer-------

            string   connectionString = ConfigurationManager.ConnectionStrings["Data"].ConnectionString;
            Accessor con = new Accessor(connectionString);

            con.Add(new Item {
                Name = "Track"
            }).Wait();
            con.Delete(4).Wait();
            con.Delete(5).Wait();
            con.Update(6, new Item {
                Name = "CAR"
            }).Wait();

            Item[] items = con.GetAll().Result;

            foreach (Item i in items)
            {
                Console.WriteLine("ItemID =  {0},  ItemName = {1}", i.ItemId, i.Name);
            }

            Console.WriteLine("Completed");
            Console.ReadKey();
        }