Beispiel #1
0
        public void ConsumerTest_當2個consumer輸流取值時_取回資料與順序相符()
        {
            ConcurrentQueue <int> queue = new ConcurrentQueue <int>(new[] { 1, 2, 3, 4 });

            var dispatch = new HomogeneityDispatch <int>();

            dispatch.Binding(queue);

            var consumer1 = new ConsumerTest();
            var consumer2 = new ConsumerTest();

            dispatch.Register(consumer1);
            dispatch.Register(consumer2);

            consumer1.DoWork();
            consumer2.DoWork();
            consumer1.DoWork();

            var actual = consumer1.Queue.ToArray();

            (new[] { 1, 3 }).ToExpectedObject().ShouldEqual(actual);

            actual = consumer2.Queue.ToArray();
            (new[] { 2 }).ToExpectedObject().ShouldEqual(actual);
        }
Beispiel #2
0
        public void ConsumerTest_單consumer取值_資料順序相同()
        {
            var expect = new int[] { 24, 12, 16, 22 };
            ConcurrentQueue <int> queue = new ConcurrentQueue <int>(expect);

            var dispatch = new HomogeneityDispatch <int>();

            dispatch.Binding(queue);

            var consumer1 = new ConsumerTest();

            dispatch.Register(consumer1);

            consumer1.DoWork();
            consumer1.DoWork();
            consumer1.DoWork();
            consumer1.DoWork();

            var actual = consumer1.Queue.ToArray();

            expect.ToExpectedObject().ShouldEqual(actual);
        }