Esempio n. 1
0
        public void AsyncJobMultipleCompletesOnIncompleteResultAndFailure()
        {
            SteamClient client = new SteamClient();

            client.jobManager.SetTimeoutsEnabled(true);

            AsyncJobMultiple <Callback> asyncJob = new AsyncJobMultiple <Callback>(client, 123, call => call.IsFinished);

            asyncJob.Timeout = TimeSpan.FromSeconds(1);

            Task <AsyncJobMultiple <Callback> .ResultSet> asyncTask = asyncJob.ToTask();

            Callback onlyResult = new Callback {
                JobID = 123, IsFinished = false
            };

            asyncJob.AddResult(onlyResult);

            asyncJob.SetFailed(dueToRemoteFailure: true);

            Assert.True(asyncTask.IsCompleted, "AsyncJobMultiple should be completed on partial (failed) result set");
            Assert.False(asyncTask.IsCanceled, "AsyncJobMultiple should not be canceled on partial (failed) result set");
            Assert.False(asyncTask.IsFaulted, "AsyncJobMultiple should not be faulted on a partial (failed) result set");

            AsyncJobMultiple <Callback> .ResultSet result = asyncTask.Result;

            Assert.False(result.Complete, "ResultSet should be incomplete");
            Assert.True(result.Failed, "ResultSet should be failed");
            Assert.Equal(result.Results.Count, 1);
            Assert.Contains(onlyResult, result.Results);
        }
Esempio n. 2
0
        public async Task AsyncJobMultipleThrowsFailureExceptionOnFailure()
        {
            SteamClient client = new SteamClient();

            AsyncJobMultiple <Callback> asyncJob = new AsyncJobMultiple <Callback>(client, 123, call => false);
            Task <AsyncJobMultiple <Callback> .ResultSet> asyncTask = asyncJob.ToTask();

            asyncJob.SetFailed(dueToRemoteFailure: true);

            Assert.True(asyncTask.IsCompleted, "AsyncJobMultiple should be completed after job failure");
            Assert.False(asyncTask.IsCanceled, "AsyncJobMultiple should not be canceled after job failure");
            Assert.True(asyncTask.IsFaulted, "AsyncJobMultiple should be faulted after job failure");

            await Assert.ThrowsAsync(typeof(AsyncJobFailedException), async() => await asyncTask);
        }
Esempio n. 3
0
        public async void AsyncJobMultipleThrowsFailureExceptionOnFailure()
        {
            SteamClient client = new SteamClient();

            AsyncJobMultiple<Callback> asyncJob = new AsyncJobMultiple<Callback>( client, 123, call => false );
            Task<AsyncJobMultiple<Callback>.ResultSet> asyncTask = asyncJob.ToTask();

            asyncJob.SetFailed( dueToRemoteFailure: true );

            Assert.True( asyncTask.IsCompleted, "AsyncJobMultiple should be completed after job failure" );
            Assert.False( asyncTask.IsCanceled, "AsyncJobMultiple should not be canceled after job failure" );
            Assert.True( asyncTask.IsFaulted, "AsyncJobMultiple should be faulted after job failure" );

            await Assert.ThrowsAsync( typeof( AsyncJobFailedException ), async () => await asyncTask );
        }
Esempio n. 4
0
        public void AsyncJobMultipleCompletesOnIncompleteResultAndFailure()
        {
            SteamClient client = new SteamClient();
            client.jobManager.SetTimeoutsEnabled( true );

            AsyncJobMultiple<Callback> asyncJob = new AsyncJobMultiple<Callback>( client, 123, call => call.IsFinished );
            asyncJob.Timeout = TimeSpan.FromSeconds( 1 );

            Task<AsyncJobMultiple<Callback>.ResultSet> asyncTask = asyncJob.ToTask();

            Callback onlyResult = new Callback { JobID = 123, IsFinished = false };

            asyncJob.AddResult( onlyResult );

            asyncJob.SetFailed( dueToRemoteFailure: true );

            Assert.True( asyncTask.IsCompleted, "AsyncJobMultiple should be completed on partial (failed) result set" );
            Assert.False( asyncTask.IsCanceled, "AsyncJobMultiple should not be canceled on partial (failed) result set" );
            Assert.False( asyncTask.IsFaulted, "AsyncJobMultiple should not be faulted on a partial (failed) result set" );

            AsyncJobMultiple<Callback>.ResultSet result = asyncTask.Result;

            Assert.False( result.Complete, "ResultSet should be incomplete" );
            Assert.True( result.Failed, "ResultSet should be failed" );
            Assert.Equal( result.Results.Count, 1 );
            Assert.Contains( onlyResult, result.Results );
        }