コード例 #1
0
        public void CanUseTestObserver()
        {
            const string MailBoxName = "box";
            const string ErrorText   = "error";

            using (var mailBox = new ProcessMailBox(MailBoxName, TimeSpan.FromMilliseconds(-1)))
            {
                using (var observer = new TestObserver(MailBoxName))
                {
                    var list = new List <object>();

                    var taskObserve = Task.Factory.StartNew(
                        () =>
                    {
                        observer.OnNext(PerTestResultGenerator.CreatePerfResult());
                        observer.OnError(new Exception(ErrorText));
                        observer.OnCompleted();
                    });

                    var taskMailBox = Task.Factory.StartNew(
                        () =>
                    {
                        list.Add(mailBox.Content);
                        list.Add(mailBox.Content);
                        list.Add(mailBox.Content);
                    });

                    Task.WaitAll(new[] { taskObserve, taskMailBox }, TimeSpan.FromSeconds(20)).Should().BeTrue();
                    list.Count.Should().Be(3);
                    list[0].Should().Be(PerTestResultGenerator.CreatePerfResult());
                    list[1].Should().Be(new ExperimentError(new Exception(ErrorText)));
                    list[2].Should().Be(new ExperimentCompleted());
                }
            }
        }
コード例 #2
0
        public void CanSerializeDeserializeExperimentCompleted()
        {
            var experimentCompleted = PerTestResultGenerator.CreateExperimentCompleted();

            var    formatter  = new BinaryFormatter();
            var    binaryData = new byte[1024 * 5];
            object deserializedData;

            using (var ms = new MemoryStream(binaryData, 0, 1024 * 5, true, true))
            {
                formatter.Serialize(ms, experimentCompleted);
                ms.Seek(0, SeekOrigin.Begin);
                deserializedData = formatter.Deserialize(ms);
            }

            deserializedData.Should().NotBeNull();
            deserializedData.Should().Be(experimentCompleted);
            deserializedData.Should().NotBeSameAs(experimentCompleted);
        }