Unit tests for TargetDeclination
This commit is contained in:
@@ -1383,5 +1383,149 @@ namespace Meade.net.Telescope.UnitTests
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendChar(expectedCommand), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SyncToAltAz_WhenConnected_ThenSendsExpectedMessage()
|
||||
{
|
||||
string expectedMessage = "test blind Message";
|
||||
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
var exception = Assert.Throws<MethodNotImplementedException>(() => { _telescope.SyncToAltAz(0,0); });
|
||||
|
||||
Assert.That(exception.Message, Is.EqualTo("Method SyncToAltAz is not implemented in this driver."));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SyncToTarget_WhenNotConnected_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
|
||||
var exception = Assert.Throws<NotConnectedException>(() => { _telescope.SyncToTarget(); });
|
||||
Assert.That(exception.Message, Is.EqualTo("Not connected to telescope when trying to execute: SyncToTarget"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SyncToTarget_WhenSyncToTargetFails_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":CM#")).Returns(string.Empty);
|
||||
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => { _telescope.SyncToTarget(); } );
|
||||
|
||||
Assert.That(exception.Message, Is.EqualTo("Unable to perform sync"));
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendString(":CM#"), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SyncToTarget_WhenSyncToTargetWorks_ThennoExceptionThrown()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":CM#")).Returns(" M31 EX GAL MAG 3.5 SZ178.0'#");
|
||||
|
||||
Assert.DoesNotThrow(() => { _telescope.SyncToTarget(); });
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendString(":CM#"), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetDeclination_Set_WhenNotConnected_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
|
||||
var exception = Assert.Throws<NotConnectedException>(() => { _telescope.TargetDeclination = 0; });
|
||||
Assert.That(exception.Message, Is.EqualTo("Not connected to telescope when trying to execute: TargetDeclination Set"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetDeclination_Set_WhenValueTooHigh_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
var exception = Assert.Throws<InvalidValueException>(() => { _telescope.TargetDeclination = 90.1; });
|
||||
Assert.That(exception.Message, Is.EqualTo("Declination cannot be greater than 90."));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetDeclination_Set_WhenValueTooLow_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
var exception = Assert.Throws<InvalidValueException>(() => { _telescope.TargetDeclination = -90.1; });
|
||||
Assert.That(exception.Message, Is.EqualTo("Declination cannot be less than -90."));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetDeclination_Set_WhenTelescopeReportsInvalidDec_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendChar(It.IsAny<string>())).Returns("0");
|
||||
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => { _telescope.TargetDeclination = 50; });
|
||||
Assert.That(exception.Message, Is.EqualTo("Target declination invalid"));
|
||||
}
|
||||
|
||||
[TestCase(-30.5, "-30*30:00", ":Sd-30*30:00#")]
|
||||
[TestCase(30.5, "30*30:00", ":Sd+30*30:00#")]
|
||||
[TestCase(-75.25, "-75*15:00", ":Sd-75*15:00#")]
|
||||
[TestCase(50, "50*00:00", ":Sd+50*00:00#")]
|
||||
public void TargetDeclination_Set_WhenValueOK_ThenSetsNewTargetDeclination( double declination,string decstring, string commandString)
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
_utilMock.Setup(x => x.DegreesToDMS(declination, "*", ":", ":", 2)).Returns(decstring);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendChar(commandString)).Returns("1");
|
||||
|
||||
_telescope.TargetDeclination = declination;
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendChar(commandString),Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetDeclination_Get_WhenTargetNotSet_ThenThrowsException()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => { var result = _telescope.TargetDeclination; });
|
||||
Assert.That(exception.Message, Is.EqualTo("Target not set"));
|
||||
}
|
||||
|
||||
[TestCase(50, "50*00:00", ":Sd+50*00:00#")]
|
||||
public void TargetDeclination_Get_WhenValueOK_ThenSetsNewTargetDeclination(double declination, string decstring, string commandString)
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => _sharedResourcesWrapperMock.Object.AUTOSTAR497_31EE);
|
||||
_telescope.Connected = true;
|
||||
|
||||
_utilMock.Setup(x => x.DegreesToDMS(declination, "*", ":", ":", 2)).Returns(decstring);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendChar(commandString)).Returns("1");
|
||||
|
||||
_telescope.TargetDeclination = declination;
|
||||
|
||||
var result = _telescope.TargetDeclination;
|
||||
|
||||
Assert.That(result, Is.EqualTo(declination));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,8 +309,10 @@ namespace ASCOM.Meade.net
|
||||
|
||||
SetLongFormat(true);
|
||||
_userNewerPulseGuiding = IsNewPulseGuidingSupported();
|
||||
LogMessage("Connected Set", $"New Pulse Guiding Supported: {_userNewerPulseGuiding}");
|
||||
_targetDeclination = INVALID_PARAMETER;
|
||||
_targetRightAscension = INVALID_PARAMETER;
|
||||
|
||||
LogMessage("Connected Set", $"New Pulse Guiding Supported: {_userNewerPulseGuiding}");
|
||||
IsConnected = true;
|
||||
}
|
||||
catch (Exception)
|
||||
@@ -1601,7 +1603,7 @@ namespace ASCOM.Meade.net
|
||||
//:CM# Synchronizes the telescope's position with the currently selected database object's coordinates.
|
||||
//Returns:
|
||||
//LX200's - a "#" terminated string with the name of the object that was synced.
|
||||
// Autostars & Autostar II - At static string: " M31 EX GAL MAG 3.5 SZ178.0'#"
|
||||
// Autostars & Autostar II - A static string: " M31 EX GAL MAG 3.5 SZ178.0'#"
|
||||
|
||||
if (result == string.Empty)
|
||||
throw new ASCOM.InvalidOperationException("Unable to perform sync");
|
||||
@@ -1631,6 +1633,8 @@ namespace ASCOM.Meade.net
|
||||
{
|
||||
LogMessage("TargetDeclination Set", $"{value}");
|
||||
|
||||
CheckConnected("TargetDeclination Set");
|
||||
|
||||
//todo implement low precision version of this.
|
||||
if (value > 90)
|
||||
throw new ASCOM.InvalidValueException("Declination cannot be greater than 90.");
|
||||
@@ -1638,8 +1642,6 @@ namespace ASCOM.Meade.net
|
||||
if (value < -90)
|
||||
throw new ASCOM.InvalidValueException("Declination cannot be less than -90.");
|
||||
|
||||
CheckConnected("TargetDeclination Set");
|
||||
|
||||
var dms = _utilities.DegreesToDMS(value, "*", ":", ":", 2);
|
||||
var s = value < 0 ? string.Empty : "+";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user