Lots more unit tests, and some refactoring to make the code follow SOLID better.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using ASCOM;
|
||||
using ASCOM.Astrometry.AstroUtils;
|
||||
using ASCOM.DeviceInterface;
|
||||
using ASCOM.Meade.net;
|
||||
using ASCOM.Meade.net.AstroMaths;
|
||||
using ASCOM.Meade.net.Wrapper;
|
||||
@@ -34,7 +36,7 @@ namespace Meade.net.Telescope.UnitTests
|
||||
_astroUtilsMock = new Mock<IAstroUtils>();
|
||||
|
||||
_sharedResourcesWrapperMock = new Mock<ISharedResourcesWrapper>();
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM’SS#");
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM’SS");
|
||||
_sharedResourcesWrapperMock.Setup(x => x.AUTOSTAR497).Returns(() => "AUTOSTAR");
|
||||
_sharedResourcesWrapperMock.Setup(x => x.AUTOSTAR497_31EE).Returns(() => "31Ee");
|
||||
|
||||
@@ -309,5 +311,123 @@ namespace Meade.net.Telescope.UnitTests
|
||||
|
||||
Assert.That(result, Is.EqualTo(isSupported));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SetLongFormatFalse_WhenTelescopeReturnsShortFormat_ThenDoesNothing()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM");
|
||||
_telescope.SetLongFormat(false);
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(":U#"),Times.Never);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SetLongFormatFalse_WhenTelescopeReturnsLongFormat_ThenTogglesPrecision()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM’SS");
|
||||
_telescope.SetLongFormat(false);
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(":U#"), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SetLongFormatTrue_WhenTelescopeReturnsLongFormat_ThenDoesNothing()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM’SS");
|
||||
_telescope.SetLongFormat(true);
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(":U#"), Times.Never);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SetLongFormatTrue_WhenTelescopeReturnsShortFormat_ThenTogglesPrecision()
|
||||
{
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SendString(":GZ#")).Returns("DDD*MM");
|
||||
_telescope.SetLongFormat(true);
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(":U#"), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SelectSite_WhenNewSiteToLow_ThenThrowsException()
|
||||
{
|
||||
var site = 0;
|
||||
var result = Assert.Throws<ArgumentOutOfRangeException>(() => { _telescope.SelectSite(site); });
|
||||
|
||||
Assert.That(result.Message, Is.EqualTo($"Site cannot be lower than 1\r\nParameter name: site\r\nActual value was {site}."));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SelectSite_WhenNewSiteToHigh_ThenThrowsException()
|
||||
{
|
||||
var site = 5;
|
||||
var result = Assert.Throws<ArgumentOutOfRangeException>(() => { _telescope.SelectSite(site); });
|
||||
|
||||
Assert.That(result.Message, Is.EqualTo($"Site cannot be higher than 4\r\nParameter name: site\r\nActual value was {site}."));
|
||||
}
|
||||
|
||||
[TestCase(1)]
|
||||
[TestCase(2)]
|
||||
[TestCase(3)]
|
||||
[TestCase(4)]
|
||||
public void SelectSite_WhenNewSiteToHigh_ThenThrowsException(int site)
|
||||
{
|
||||
_telescope.SelectSite(site);
|
||||
|
||||
_sharedResourcesWrapperMock.Verify(x => x.SendBlind($":W{site}#"), Times.Once);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Description_Get()
|
||||
{
|
||||
var expectedDescription = "Meade Generic";
|
||||
|
||||
var description = _telescope.Description;
|
||||
|
||||
Assert.That(description, Is.EqualTo(expectedDescription));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DriverVersion_Get()
|
||||
{
|
||||
Version version = System.Reflection.Assembly.GetAssembly(typeof(ASCOM.Meade.net.Telescope)).GetName().Version;
|
||||
|
||||
string exptectedDriverInfo = $"{version.Major}.{version.Minor}.{version.Revision}.{version.Build}";
|
||||
|
||||
var driverVersion = _telescope.DriverVersion;
|
||||
|
||||
Assert.That(driverVersion, Is.EqualTo(exptectedDriverInfo));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DriverInfo_Get()
|
||||
{
|
||||
Version version = System.Reflection.Assembly.GetAssembly(typeof(ASCOM.Meade.net.Telescope)).GetName().Version;
|
||||
|
||||
string exptectedDriverInfo = $"{_telescope.Description} .net driver. Version: {_telescope.DriverVersion}";
|
||||
|
||||
var driverInfo = _telescope.DriverInfo;
|
||||
|
||||
Assert.That(driverInfo, Is.EqualTo(exptectedDriverInfo));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void InterfaceVersion_Get()
|
||||
{
|
||||
var interfaceVersion = _telescope.InterfaceVersion;
|
||||
Assert.That(interfaceVersion, Is.EqualTo(3));
|
||||
|
||||
Assert.That(_telescope, Is.AssignableTo<ITelescopeV3>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Name_Get()
|
||||
{
|
||||
string expectedName = "Meade Generic";
|
||||
|
||||
var name = _telescope.Name;
|
||||
|
||||
Assert.That(name, Is.EqualTo(expectedName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ namespace ASCOM.Meade.net
|
||||
{
|
||||
var result = _sharedResourcesWrapper.SendString(":GZ#");
|
||||
//:GZ# Get telescope azimuth
|
||||
//Returns: DDD*MM#T or DDD*MM’SS#
|
||||
//Returns: DDD*MM# or DDD*MM’SS#
|
||||
//The current telescope Azimuth depending on the selected precision.
|
||||
|
||||
bool isLongFormat = result.Length > 6;
|
||||
@@ -373,12 +373,13 @@ namespace ASCOM.Meade.net
|
||||
});
|
||||
}
|
||||
|
||||
private void SelectSite(int site)
|
||||
//todo hook this up to a custom action
|
||||
public void SelectSite(int site)
|
||||
{
|
||||
if (site < 1)
|
||||
throw new ArgumentOutOfRangeException("site cannot be lower than 1");
|
||||
throw new ArgumentOutOfRangeException("site",site,"Site cannot be lower than 1");
|
||||
else if (site > 4)
|
||||
throw new ArgumentOutOfRangeException("site cannot be higher than 4");
|
||||
throw new ArgumentOutOfRangeException("site", site, "Site cannot be higher than 4");
|
||||
|
||||
_sharedResourcesWrapper.SendBlind($":W{site}#");
|
||||
//:W<n>#
|
||||
@@ -400,10 +401,8 @@ namespace ASCOM.Meade.net
|
||||
{
|
||||
get
|
||||
{
|
||||
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
||||
// TODO customise this driver description
|
||||
string driverInfo = "Meade Generic .net driver. Version: " + String.Format(CultureInfo.InvariantCulture, "{0}.{1}", version.Major,
|
||||
version.Minor);
|
||||
string driverInfo = $"{Description} .net driver. Version: {DriverVersion}";
|
||||
LogMessage("DriverInfo Get", driverInfo);
|
||||
return driverInfo;
|
||||
}
|
||||
@@ -414,8 +413,7 @@ namespace ASCOM.Meade.net
|
||||
get
|
||||
{
|
||||
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
|
||||
string driverVersion =
|
||||
String.Format(CultureInfo.InvariantCulture, "{0}.{1}", version.Major, version.Minor);
|
||||
string driverVersion = $"{version.Major}.{version.Minor}.{version.Revision}.{version.Build}";
|
||||
LogMessage("DriverVersion Get", driverVersion);
|
||||
return driverVersion;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user