Added more unit tests and refactored AstroMaths to be in a sub folder
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using ASCOM.Meade.net;
|
using ASCOM.Meade.net;
|
||||||
|
using ASCOM.Meade.net.AstroMaths;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
|
||||||
namespace AstroMath.UnitTests
|
namespace AstroMath.UnitTests
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
using ASCOM.Astrometry.AstroUtils;
|
using System.Xml.Serialization;
|
||||||
|
using ASCOM;
|
||||||
|
using ASCOM.Astrometry.AstroUtils;
|
||||||
using ASCOM.Meade.net;
|
using ASCOM.Meade.net;
|
||||||
|
using ASCOM.Meade.net.AstroMaths;
|
||||||
using ASCOM.Meade.net.Wrapper;
|
using ASCOM.Meade.net.Wrapper;
|
||||||
using ASCOM.Utilities.Interfaces;
|
using ASCOM.Utilities.Interfaces;
|
||||||
using Moq;
|
using Moq;
|
||||||
@@ -34,7 +37,8 @@ namespace Meade.net.Telescope.UnitTests
|
|||||||
|
|
||||||
_astroMathsMock = new Mock<IAstroMaths>();
|
_astroMathsMock = new Mock<IAstroMaths>();
|
||||||
|
|
||||||
_telescope = new ASCOM.Meade.net.Telescope(_utilMock.Object, _utilExtraMock.Object, _astroUtilsMock.Object, _sharedResourcesWrapperMock.Object, _astroMathsMock.Object);
|
_telescope = new ASCOM.Meade.net.Telescope(_utilMock.Object, _utilExtraMock.Object, _astroUtilsMock.Object,
|
||||||
|
_sharedResourcesWrapperMock.Object, _astroMathsMock.Object);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@@ -56,8 +60,75 @@ namespace Meade.net.Telescope.UnitTests
|
|||||||
|
|
||||||
_telescope.SetupDialog();
|
_telescope.SetupDialog();
|
||||||
|
|
||||||
_sharedResourcesWrapperMock.Verify( x => x.SetupDialog(), Times.Once);
|
_sharedResourcesWrapperMock.Verify(x => x.SetupDialog(), Times.Once);
|
||||||
_sharedResourcesWrapperMock.Verify(x => x.ReadProfile(), Times.Exactly(2));
|
_sharedResourcesWrapperMock.Verify(x => x.ReadProfile(), Times.Exactly(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void SupportedActions()
|
||||||
|
{
|
||||||
|
var supportedActions = _telescope.SupportedActions;
|
||||||
|
|
||||||
|
Assert.That(supportedActions, Is.Not.Null);
|
||||||
|
Assert.That(supportedActions.Count, Is.EqualTo(1));
|
||||||
|
Assert.That(supportedActions.Contains("handbox"), Is.True);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Action_Handbox_ReadDisplay()
|
||||||
|
{
|
||||||
|
string expectedResult = "test result string";
|
||||||
|
_sharedResourcesWrapperMock.Setup(x => x.SendString(It.IsAny<string>())).Returns(expectedResult);
|
||||||
|
|
||||||
|
var actualResult = _telescope.Action("handbox", "readdisplay");
|
||||||
|
|
||||||
|
_sharedResourcesWrapperMock.Verify(x => x.SendString(":ED#"), Times.Once);
|
||||||
|
Assert.That(actualResult, Is.EqualTo(expectedResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCase("enter", ":EK13#")]
|
||||||
|
[TestCase("mode", ":EK9#")]
|
||||||
|
[TestCase("longMode", ":EK11#")]
|
||||||
|
[TestCase("goto", ":EK24#")]
|
||||||
|
[TestCase("0", ":EK48#")]
|
||||||
|
[TestCase("1", ":EK49#")]
|
||||||
|
[TestCase("2", ":EK50#")]
|
||||||
|
[TestCase("3", ":EK51#")]
|
||||||
|
[TestCase("4", ":EK52#")]
|
||||||
|
[TestCase("5", ":EK53#")]
|
||||||
|
[TestCase("6", ":EK54#")]
|
||||||
|
[TestCase("7", ":EK55#")]
|
||||||
|
[TestCase("8", ":EK56#")]
|
||||||
|
[TestCase("9", ":EK57#")]
|
||||||
|
[TestCase("up", ":EK94#")]
|
||||||
|
[TestCase("down", ":EK118#")]
|
||||||
|
[TestCase("back", ":EK87#")]
|
||||||
|
[TestCase("forward", ":EK69#")]
|
||||||
|
[TestCase("?", ":EK63#")]
|
||||||
|
public void Action_Handbox_blindCommands(string action, string expectedString)
|
||||||
|
{
|
||||||
|
_telescope.Action("handbox", action);
|
||||||
|
|
||||||
|
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(expectedString), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Action_Handbox_nonExistantAction()
|
||||||
|
{
|
||||||
|
string actionName = "handbox";
|
||||||
|
string actionParameters = "doesnotexist";
|
||||||
|
var exception = Assert.Throws<ActionNotImplementedException>(() => { _telescope.Action(actionName, actionParameters); });
|
||||||
|
|
||||||
|
Assert.That(exception.Message, Is.EqualTo($"Action {actionName}({actionParameters}) is not implemented in this driver is not implemented in this driver."));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Action_nonExistantAction()
|
||||||
|
{
|
||||||
|
string actionName = "doesnotexist";
|
||||||
|
var exception = Assert.Throws<ActionNotImplementedException>(() => { _telescope.Action(actionName, string.Empty); });
|
||||||
|
|
||||||
|
Assert.That(exception.Message, Is.EqualTo($"Action {actionName} is not implemented in this driver is not implemented in this driver."));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace ASCOM.Meade.net.AstroMaths
|
||||||
|
{
|
||||||
|
public class AltitudeData
|
||||||
|
{
|
||||||
|
public DateTime UtcDateTime { get; set; }
|
||||||
|
public double SiteLatitude { get; set; }
|
||||||
|
public double SiteLongitude { get; set; }
|
||||||
|
public EquatorialCoordinates equatorialCoordinates { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,29 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using ASCOM.Utilities;
|
using ASCOM.Utilities;
|
||||||
|
|
||||||
namespace ASCOM.Meade.net
|
namespace ASCOM.Meade.net.AstroMaths
|
||||||
{
|
{
|
||||||
public class EquatorialCoordinates
|
|
||||||
{
|
|
||||||
public double RightAscension { get; set; }
|
|
||||||
public double Declination { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class HorizonCoordinates
|
|
||||||
{
|
|
||||||
public double Altitude { get; set; }
|
|
||||||
public double Azimuth { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class AltitudeData
|
|
||||||
{
|
|
||||||
public DateTime UtcDateTime { get; set; }
|
|
||||||
public double SiteLatitude { get; set; }
|
|
||||||
public double SiteLongitude { get; set; }
|
|
||||||
public EquatorialCoordinates equatorialCoordinates { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class AstroMaths : IAstroMaths
|
public class AstroMaths : IAstroMaths
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace ASCOM.Meade.net.AstroMaths
|
||||||
|
{
|
||||||
|
public class EquatorialCoordinates
|
||||||
|
{
|
||||||
|
public double RightAscension { get; set; }
|
||||||
|
public double Declination { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace ASCOM.Meade.net.AstroMaths
|
||||||
|
{
|
||||||
|
public class HorizonCoordinates
|
||||||
|
{
|
||||||
|
public double Altitude { get; set; }
|
||||||
|
public double Azimuth { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace ASCOM.Meade.net
|
namespace ASCOM.Meade.net.AstroMaths
|
||||||
{
|
{
|
||||||
public interface IAstroMaths
|
public interface IAstroMaths
|
||||||
{
|
{
|
||||||
@@ -113,8 +113,11 @@
|
|||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="AstroMaths.cs" />
|
<Compile Include="AstroMaths\AltitudeData.cs" />
|
||||||
<Compile Include="IAstroMaths.cs" />
|
<Compile Include="AstroMaths\AstroMaths.cs" />
|
||||||
|
<Compile Include="AstroMaths\EquatorialCoordinates.cs" />
|
||||||
|
<Compile Include="AstroMaths\HorizonCoordinates.cs" />
|
||||||
|
<Compile Include="AstroMaths\IAstroMaths.cs" />
|
||||||
<Compile Include="StringExtensions.cs" />
|
<Compile Include="StringExtensions.cs" />
|
||||||
<Compile Include="Telescope.cs" />
|
<Compile Include="Telescope.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using ASCOM.DeviceInterface;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using ASCOM.Meade.net.AstroMaths;
|
||||||
using ASCOM.Meade.net.Wrapper;
|
using ASCOM.Meade.net.Wrapper;
|
||||||
using ASCOM.Utilities.Interfaces;
|
using ASCOM.Utilities.Interfaces;
|
||||||
|
|
||||||
@@ -80,7 +81,7 @@ namespace ASCOM.Meade.net
|
|||||||
_utilitiesExtra = util; //Initialise util object
|
_utilitiesExtra = util; //Initialise util object
|
||||||
_astroUtilities = new AstroUtils(); // Initialise astro utilities object
|
_astroUtilities = new AstroUtils(); // Initialise astro utilities object
|
||||||
_sharedResourcesWrapper = new SharedResourcesWrapper();
|
_sharedResourcesWrapper = new SharedResourcesWrapper();
|
||||||
_astroMaths = new AstroMaths();
|
_astroMaths = new AstroMaths.AstroMaths();
|
||||||
|
|
||||||
Initialise();
|
Initialise();
|
||||||
}
|
}
|
||||||
@@ -173,7 +174,7 @@ namespace ASCOM.Meade.net
|
|||||||
case "mode":
|
case "mode":
|
||||||
_sharedResourcesWrapper.SendBlind(":EK9#");
|
_sharedResourcesWrapper.SendBlind(":EK9#");
|
||||||
break;
|
break;
|
||||||
case "longMode":
|
case "longmode":
|
||||||
_sharedResourcesWrapper.SendBlind(":EK11#");
|
_sharedResourcesWrapper.SendBlind(":EK11#");
|
||||||
break;
|
break;
|
||||||
case "goto":
|
case "goto":
|
||||||
@@ -228,12 +229,12 @@ namespace ASCOM.Meade.net
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LogMessage("", "Action {0}, parameters {1} not implemented", actionName, actionParameters);
|
LogMessage("", "Action {0}, parameters {1} not implemented", actionName, actionParameters);
|
||||||
throw new ASCOM.ActionNotImplementedException($"Action {actionName}({actionParameters}) is not implemented by this driver");
|
throw new ASCOM.ActionNotImplementedException($"{actionName}({actionParameters})");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LogMessage("", "Action {0}, parameters {1} not implemented", actionName, actionParameters);
|
LogMessage("", "Action {0}, parameters {1} not implemented", actionName, actionParameters);
|
||||||
throw new ASCOM.ActionNotImplementedException($"Action {actionName} is not implemented by this driver");
|
throw new ASCOM.ActionNotImplementedException($"{actionName}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Settings>
|
<Settings>
|
||||||
<AutoEnable>True</AutoEnable>
|
<AutoEnable>True</AutoEnable>
|
||||||
<CurrentEngineMode>Run all tests automatically [Global]</CurrentEngineMode>
|
<CurrentEngineMode>Run all tests automatically [Global]</CurrentEngineMode>
|
||||||
|
<MetricsTreeShowTestProjects>False</MetricsTreeShowTestProjects>
|
||||||
<StatusIndicatorSplitterDistance>25</StatusIndicatorSplitterDistance>
|
<StatusIndicatorSplitterDistance>25</StatusIndicatorSplitterDistance>
|
||||||
<TestsWindowMenuOptions>
|
<TestsWindowMenuOptions>
|
||||||
<VerticalSplitMenuOption>false</VerticalSplitMenuOption>
|
<VerticalSplitMenuOption>false</VerticalSplitMenuOption>
|
||||||
|
|||||||
Reference in New Issue
Block a user