public void ClosestPointsFinderCalculateHandler_SendsMessage_ForMessage( [NotNull, Frozen] ISelkieInMemoryBus bus, [NotNull, Frozen] ISettingsManager manager, [NotNull, Frozen] IClosestPointsFinder finder, [NotNull] ClosestPointsFinderModel sut, [NotNull] ClosestIdsCalculateMessage message) { // Arrange SetupSettingsManager(manager); var expected = new[] { 1, 2, 3 }; finder.ClosestIds.Returns(expected); // Act sut.ClosestPointsFinderCalculateHandler(message); // Assert bus.Received() .PublishAsync(Arg.Is <ClosestIdsChangedMessage>(x => expected.SequenceEqual(x.ClosestPointIds))); }
public void ClosestPointsFinderCalculateHandler_CallsRun_ForMessage( [NotNull, Frozen] ISelkieInMemoryBus bus, [NotNull, Frozen] ISettingsManager manager, [NotNull, Frozen] IClosestPointsFinder finder, [NotNull] ClosestPointsFinderModel sut, [NotNull] ClosestIdsCalculateMessage message) { // Arrange SetupSettingsManager(manager); // Act sut.ClosestPointsFinderCalculateHandler(message); // Assert finder.Received().Run(Arg.Is <IApplicationArguments>(x => x.Source == "Test.txt" && x.NumberOfClosestPoints == 3 && x.QueryPointCoordinates == "1 2 3" && x.ShiftPointCoordinates == "4 5 6")); }
internal void ClosestPointsFinderCalculateHandler(ClosestIdsCalculateMessage message) { // todo avoid converting to string, use a different class to configure (the app was original developed as a console application) string queryPointCoordinates = "{0} {1} {2}".Inject(m_Manager.QueryPoint.X, m_Manager.QueryPoint.Y, m_Manager.QueryPoint.Z); string shiftPointCoordinates = "{0} {1} {2}".Inject(m_Manager.ShiftPoint.X, m_Manager.ShiftPoint.Y, m_Manager.ShiftPoint.Z); var arguments = new ApplicationArguments { Source = m_Manager.Filename, // todo Source should be named Filename NumberOfClosestPoints = m_Manager.NumberOfClosestPoints, QueryPointCoordinates = queryPointCoordinates, ShiftPointCoordinates = shiftPointCoordinates }; m_Finder.Run(arguments); SendClosestIdsChangedMessage(); }
internal void SendClosestIdsCalculateMessage() { var message = new ClosestIdsCalculateMessage(); m_Bus.PublishAsync(message); }