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); }
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); }