Added an extra test to Slewing so that if connected will check with the mount to see if it's actually slewing, which is should have been doing

This commit is contained in:
2024-11-18 20:21:10 +00:00
parent 04c2f5e1bb
commit 7554c1e213
2 changed files with 37 additions and 9 deletions
@@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Linq;
using System.Reflection; using System.Reflection;
using ASCOM; using ASCOM;
using ASCOM.Astrometry.AstroUtils; using ASCOM.Astrometry.AstroUtils;
@@ -2940,13 +2942,15 @@ namespace Meade.net.Telescope.UnitTests
[Test] [Test]
public void Slewing_WhenConnectedAndTelescopeFails_ThenReturnsFalse() public void Slewing_WhenConnectedAndTelescopeFails_ThenReturnsFalse()
{ {
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns("");
ConnectTelescope(); ConnectTelescope();
var result = _telescope.Slewing; var result = _telescope.Slewing;
Assert.That(result, Is.False); Assert.That(result, Is.False);
_sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Exactly(2));
} }
[Test] [Test]
@@ -3033,7 +3037,24 @@ namespace Meade.net.Telescope.UnitTests
[TestCase(TelescopeList.Autostar497, TelescopeList.Autostar497_43Eg, "", false)] [TestCase(TelescopeList.Autostar497, TelescopeList.Autostar497_43Eg, "", false)]
public void Slewing_WhenTelescopeNotSlewing_ThenReturnsFalse(string productName, string firmwareVersion, string response, bool isSlewing) public void Slewing_WhenTelescopeNotSlewing_ThenReturnsFalse(string productName, string firmwareVersion, string response, bool isSlewing)
{ {
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns(response); List<string> slewingResponses = new List<string>();
if (isSlewing)
slewingResponses.Add("|");
slewingResponses.Add(response);
var callCounter = 0;
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns( () => {
var slewingResult = slewingResponses[callCounter];
callCounter++;
if (callCounter > slewingResponses.Count - 1)
{
callCounter = slewingResponses.Count - 1;
}
return slewingResult;
});
ConnectTelescope(productName, firmwareVersion); ConnectTelescope(productName, firmwareVersion);
@@ -3041,7 +3062,10 @@ namespace Meade.net.Telescope.UnitTests
Assert.That(result, Is.EqualTo(isSlewing)); Assert.That(result, Is.EqualTo(isSlewing));
_sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Once); if (isSlewing)
{
_sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Exactly(1));
}
} }
[TestCase(1, TelescopeAxes.axisPrimary)] [TestCase(1, TelescopeAxes.axisPrimary)]
@@ -3267,7 +3291,7 @@ namespace Meade.net.Telescope.UnitTests
{ {
_sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0"); _sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0");
var preTestItterations = 1; var preTestItterations = 2;
var slewCounter = 0; var slewCounter = 0;
var iterations = 10; var iterations = 10;
@@ -3359,7 +3383,7 @@ namespace Meade.net.Telescope.UnitTests
_sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0"); _sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0");
var preTestItterations = 1; var preTestItterations = 2;
var slewCounter = 0; var slewCounter = 0;
var iterations = 10; var iterations = 10;
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns(() => _sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns(() =>
@@ -3482,7 +3506,7 @@ namespace Meade.net.Telescope.UnitTests
_sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0"); _sharedResourcesWrapperMock.Setup(x => x.SendChar(_traceLoggerMock.Object, "MS", false)).Returns("0");
var preTestItterations = 1; var preTestItterations = 2;
var slewCounter = 0; var slewCounter = 0;
var iterations = 10; var iterations = 10;
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns(() => _sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns(() =>
@@ -3583,6 +3607,8 @@ namespace Meade.net.Telescope.UnitTests
[Test] [Test]
public void AbortSlew_WhenConnected_ThenSendsStopSlewingToTelescope() public void AbortSlew_WhenConnected_ThenSendsStopSlewingToTelescope()
{ {
_sharedResourcesWrapperMock.Setup(x => x.SendString(_traceLoggerMock.Object, "D", false)).Returns("");
ConnectTelescope(); ConnectTelescope();
_telescope.AbortSlew(); _telescope.AbortSlew();
@@ -3592,7 +3618,7 @@ namespace Meade.net.Telescope.UnitTests
var isSloSlewing = _telescope.Slewing; var isSloSlewing = _telescope.Slewing;
Assert.That(isSloSlewing, Is.False); Assert.That(isSloSlewing, Is.False);
_sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendString(_traceLoggerMock.Object, "D", false), Times.Exactly(2));
} }
[Test] [Test]
+4 -2
View File
@@ -2998,6 +2998,8 @@ namespace ASCOM.Meade.net
throw new ASCOM.InvalidOperationException("Cannot start a slew whilst slew is in progress."); throw new ASCOM.InvalidOperationException("Cannot start a slew whilst slew is in progress.");
} }
switch (polar) switch (polar)
{ {
case true: case true:
@@ -3212,8 +3214,8 @@ namespace ASCOM.Meade.net
{ {
try try
{ {
var isSlewing = GetSlewing(); var isSlewing = GetSlewing() || (IsConnected && IsSlewingToTarget());
if (isSlewing) if (isSlewing)
SetSlewingMinEndTime(); SetSlewingMinEndTime();
else if (_clock.UtcNow < SharedResourcesWrapper.EarliestNonSlewingTime) else if (_clock.UtcNow < SharedResourcesWrapper.EarliestNonSlewingTime)