예제 #1
0
        public async Task Complete_TimestampSet_CompletesEvent()
        {
            var metadata = new FunctionMetadata();
            var evt      = new FunctionStartedEvent(Guid.NewGuid(), metadata);

            evt.Timestamp = DateTime.UtcNow;
            Assert.False(evt.Completed);

            // complete immediately (potentially within system timer resolution)
            evt.Complete();
            Assert.True(evt.Completed);

            evt           = new FunctionStartedEvent(Guid.NewGuid(), metadata);
            evt.Timestamp = DateTime.UtcNow;
            Assert.False(evt.Completed);

            // complete after a delay
            await Task.Delay(250);

            evt.Complete();
            Assert.True(evt.Completed);
        }
예제 #2
0
        public async Task Complete_StopwatchSet_CompletesEvent()
        {
            var metadata = new FunctionMetadata();
            var evt      = new FunctionStartedEvent(Guid.NewGuid(), metadata);

            evt.StopWatch = Stopwatch.StartNew();
            Assert.False(evt.Completed);

            // complete immediately (potentially within system timer resolution)
            evt.Complete();
            Assert.True(evt.Completed);
            Assert.False(evt.StopWatch.IsRunning);

            evt           = new FunctionStartedEvent(Guid.NewGuid(), metadata);
            evt.StopWatch = Stopwatch.StartNew();
            Assert.False(evt.Completed);

            // complete after a delay
            await Task.Delay(250);

            evt.Complete();
            Assert.True(evt.Completed);
            Assert.False(evt.StopWatch.IsRunning);
        }
예제 #3
0
        public async Task Complete_StopwatchSet_CompletesEvent()
        {
            var metadata = new FunctionMetadata();
            var evt      = new FunctionStartedEvent(Guid.NewGuid(), metadata);

            evt.StopWatch = ValueStopwatch.StartNew();
            Assert.False(evt.Completed);

            // complete immediately (potentially within system timer resolution)
            evt.Complete();
            Assert.True(evt.Completed);
            Assert.True(evt.StopWatch.IsActive); // The stopwatch has no state, but has been activated

            evt           = new FunctionStartedEvent(Guid.NewGuid(), metadata);
            evt.StopWatch = ValueStopwatch.StartNew();
            Assert.False(evt.Completed);

            // complete after a delay
            await Task.Delay(250);

            evt.Complete();
            Assert.True(evt.Completed);
            Assert.True(evt.StopWatch.IsActive); // The stopwatch has no state, but has been activated
        }
예제 #4
0
 internal void FunctionCompleted(FunctionStartedEvent completedEvent)
 {
     completedEvent.Complete();
     _functionActivityTracker.FunctionCompleted(completedEvent);
 }