Skip to content

Commit

Permalink
Merge pull request #823 from AndrzejKrol/Use_ContinuationTimeout_From…
Browse files Browse the repository at this point in the history
…_ConnectionFactory

AutorecoveringConnection uses ContinuationTimeout from ConnectionFactory
  • Loading branch information
michaelklishin authored May 4, 2020
2 parents d5c90f7 + 35ebb63 commit c9e36dc
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ public RecoveryAwareModel CreateNonRecoveringModel()
{
ISession session = _delegate.CreateSession();
var result = new RecoveryAwareModel(session);
result.ContinuationTimeout = _factory.ContinuationTimeout;
result._Private_ChannelOpen("");
return result;
}
Expand Down
10 changes: 10 additions & 0 deletions projects/Unit/Fixtures.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,16 @@ internal IConnection CreateNonRecoveringConnection()
return cf.CreateConnection($"UNIT_CONN:{Guid.NewGuid()}");
}

internal IConnection CreateConnectionWithContinuationTimeout(bool automaticRecoveryEnabled, TimeSpan continuationTimeout)
{
var cf = new ConnectionFactory
{
AutomaticRecoveryEnabled = automaticRecoveryEnabled,
ContinuationTimeout = continuationTimeout
};
return cf.CreateConnection($"UNIT_CONN:{Guid.NewGuid()}");
}

//
// Channels
//
Expand Down
69 changes: 69 additions & 0 deletions projects/Unit/TestConnectionFactoryContinuationTimeout.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
// This source code is dual-licensed under the Apache License, version
// 2.0, and the Mozilla Public License, version 1.1.
//
// The APL v2.0:
//
//---------------------------------------------------------------------------
// Copyright (c) 2007-2020 VMware, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//---------------------------------------------------------------------------
//
// The MPL v1.1:
//
//---------------------------------------------------------------------------
// The contents of this file are subject to the Mozilla Public License
// Version 1.1 (the "License"); you may not use this file except in
// compliance with the License. You may obtain a copy of the License
// at https://www.mozilla.org/MPL/
//
// Software distributed under the License is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
// the License for the specific language governing rights and
// limitations under the License.
//
// The Original Code is RabbitMQ.
//
// The Initial Developer of the Original Code is Pivotal Software, Inc.
// Copyright (c) 2007-2020 VMware, Inc. All rights reserved.
//---------------------------------------------------------------------------

using System;
using NUnit.Framework;

namespace RabbitMQ.Client.Unit
{
[TestFixture]
internal class TestConnectionFactoryContinuationTimeout : IntegrationFixture
{
[Test]
public void TestConnectionFactoryContinuationTimeoutOnRecoveringConnection()
{
var continuationTimeout = TimeSpan.FromSeconds(777);
using (IConnection c = CreateConnectionWithContinuationTimeout(true, continuationTimeout))
{
Assert.AreEqual(continuationTimeout, c.CreateModel().ContinuationTimeout);
}
}

[Test]
public void TestConnectionFactoryContinuationTimeoutOnNonRecoveringConnection()
{
var continuationTimeout = TimeSpan.FromSeconds(777);
using (IConnection c = CreateConnectionWithContinuationTimeout(false, continuationTimeout))
{
Assert.AreEqual(continuationTimeout, c.CreateModel().ContinuationTimeout);
}
}
}
}

0 comments on commit c9e36dc

Please sign in to comment.