Beispiel #1
0
        public void SaveRequestEntry_MultipleRequestEntry_ShouldUpdateTheQueue ()
        {
            var sut = new TitanicMemoryIO ();

            for (var i = 0; i < 10; i++)
                sut.SaveRequestEntry (new RequestEntry { RequestId = Guid.NewGuid () });

            sut.NumberOfRequests.Should ().Be (10, "because we just added 10 Requests");

        }
Beispiel #2
0
        public void SaveRequestEntry_ValidRequestEntry_ShouldUpdateTheQueue ()
        {
            var sut = new TitanicMemoryIO ();
            var request = new NetMQMessage ();
            var id = Guid.NewGuid ();
            var entry = new RequestEntry { RequestId = id, Request = request };

            sut.SaveRequestEntry (entry);

            sut.NumberOfRequests.Should ().Be (1, "because we just added one");

            var result = sut.GetRequestEntry (id);

            result.RequestId.Should ().Be (id);
        }
Beispiel #3
0
        public void SaveNewRequest_GuidAndRequest_ShouldUpdateQueue ()
        {
            var sut = new TitanicMemoryIO ();
            var request = new NetMQMessage ();
            request.Push ("A Request");
            var id = Guid.NewGuid ();
            var entry = new RequestEntry { RequestId = id, Request = request };

            sut.SaveRequestEntry (entry);

            var result = sut.GetRequestEntry (id);

            sut.NumberOfRequests.Should ().Be (1, "because we just added one");
            result.RequestId.Should ().Be (id);
            result.Request.ShouldBeEquivalentTo (request);
            result.Position.Should ().Be (-1);
            result.State.Should ().Be (RequestEntry.Is_Pending);
        }
Beispiel #4
0
        public void CloseRequest_ExistingEntries_ShouldAlterQueueAppropriate()
        {
            var sut = new TitanicMemoryIO ();

            for (var i = 0; i < 10; i++)
                sut.SaveRequestEntry (i % 3 == 0
                                          ? new RequestEntry { RequestId = Guid.NewGuid (), State = RequestEntry.Is_Closed }
                                          : new RequestEntry { RequestId = Guid.NewGuid () });

            sut.NumberOfRequests.Should ().Be (10);

            var result = sut.GetRequestEntries (e => e.State == RequestEntry.Is_Closed);

            result.Count ().Should ().Be (4);
            foreach (var requestEntry in result)
                sut.CloseRequest (requestEntry.RequestId);

            sut.NumberOfRequests.Should ().Be (6);
        }
Beispiel #5
0
        public void SaveNewRequest_GuidOnly_ShouldUpdateQueue ()
        {
            var sut = new TitanicMemoryIO ();
            var request = new NetMQMessage ();
            var id = Guid.NewGuid ();
            var entry = new RequestEntry { RequestId = id, Request = request };

            sut.SaveRequestEntry (entry);

            var result = sut.GetRequestEntry (id);

            result.RequestId.Should ().Be (id);
            result.Request.ShouldBeEquivalentTo (request);
            result.Position.Should ().Be (-1);
            result.State.Should ().Be (RequestEntry.Is_Pending);
        }
Beispiel #6
0
        public void GetNotClosedEntries_ExistingEntriesNoResult_ShouldReturnCorrectSequence ()
        {
            var sut = new TitanicMemoryIO ();

            for (var i = 0; i < 10; i++)
                sut.SaveRequestEntry (new RequestEntry { RequestId = Guid.NewGuid (), State = RequestEntry.Is_Closed });

            sut.NumberOfRequests.Should ().Be (10);

            var result = sut.GetNotClosedRequestEntries ();

            result.Count ().Should ().Be (0);
        }
Beispiel #7
0
        public void GetRequestEntries_ExistingEntriesNoResultPredicate_ShouldReturnDefaultSequence ()
        {
            var sut = new TitanicMemoryIO ();

            for (var i = 0; i < 10; i++)
                sut.SaveRequestEntry (i % 2 == 0
                                          ? new RequestEntry { RequestId = Guid.NewGuid (), State = RequestEntry.Is_Processed }
                                          : new RequestEntry { RequestId = Guid.NewGuid () });

            sut.NumberOfRequests.Should ().Be (10);

            var result = sut.GetRequestEntries (e => e.State == RequestEntry.Is_Closed);

            result.Should ().BeOfType (typeof (RequestEntry[]));
            result.Count ().Should ().Be (0);
        }
Beispiel #8
0
        public void GetRequestEntries_ExistingEntriesCorrectPredicate_ShouldReturnCorrectSequence ()
        {
            var sut = new TitanicMemoryIO ();

            for (var i = 0; i < 10; i++)
                sut.SaveRequestEntry (i % 2 == 0
                                          ? new RequestEntry { RequestId = Guid.NewGuid (), State = RequestEntry.Is_Processed }
                                          : new RequestEntry { RequestId = Guid.NewGuid () });

            var result = sut.GetRequestEntries (e => e.State == RequestEntry.Is_Processed);

            result.Should ().BeOfType (typeof (RequestEntry[]));
            result.Count ().Should ().Be (5);
            result.All (e => e.State == RequestEntry.Is_Processed).Should ().BeTrue ();
        }
Beispiel #9
0
        public void GetRequestEntry_ExistingEntry_ShouldReturnDefaultObject ()
        {
            var sut = new TitanicMemoryIO ();
            var id = Guid.NewGuid ();

            sut.SaveRequestEntry (new RequestEntry { RequestId = id });

            var result = sut.GetRequestEntry (id);

            result.RequestId.Should ().Be (id);
            result.State.Should ().Be (RequestEntry.Is_Pending);
            result.Position.Should ().Be (-1);
            result.Request.Should ().BeNull ();
        }
Beispiel #10
0
        public void SaveProcessedRequest_ExistingRequestWithRequestData_ShouldUpdateEntryAppropriate ()
        {
            var sut = new TitanicMemoryIO ();
            var request = new NetMQMessage ();
            request.Push ("Processed Request Data");
            var id = Guid.NewGuid ();
            var entry = new RequestEntry { RequestId = id, Request = request };

            sut.SaveRequestEntry (entry);
            sut.SaveProcessedRequestEntry (entry);

            var result = sut.GetRequestEntry (id);

            result.RequestId.Should ().Be (id);
            result.Request.ShouldBeEquivalentTo (request);
            result.Position.Should ().Be (-1);
            result.State.Should ().Be (RequestEntry.Is_Processed);
        }