예제 #1
0
        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)));
        }
예제 #2
0
 public void Constructor_SubscribeToBrowseRequestMessage_WhenCreated(
     [NotNull, Frozen] ISelkieInMemoryBus bus,
     [NotNull] SourceFileSelectorModel sut)
 {
     // Arrange
     // Act
     // Assert
     bus.Received().SubscribeAsync(sut.GetType().FullName,
                                   Arg.Any <Action <BrowseRequestMessage> >());
 }
예제 #3
0
 public void Constructor_SubscribeToClosestIdsRequestMessage_WhenCreated(
     [NotNull, Frozen] ISelkieInMemoryBus bus,
     [NotNull] ClosestPointsFinderModel sut)
 {
     // Arrange
     // Act
     // Assert
     bus.Received().SubscribeAsync(sut.GetType().FullName,
                                   Arg.Any <Action <ClosestIdsRequestMessage> >());
 }
예제 #4
0
 public void Constructor_SubscribeToShiftPointSetMessage_WhenCreated(
     [NotNull, Frozen] ISelkieInMemoryBus bus,
     [NotNull] ShiftPointModel sut)
 {
     // Arrange
     // Act
     // Assert
     bus.Received().SubscribeAsync(sut.GetType().FullName,
                                   Arg.Any <Action <ShiftPointSetMessage> >());
 }
예제 #5
0
        public void FilenameSetHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] SourceFileSelectorModel sut,
            [NotNull] FilenameSetMessage message)
        {
            // Arrange
            // Act
            sut.FilenameSetHandler(message);

            // Assert
            bus.Received().PublishAsync(Arg.Is <FilenameChangedMessage>(x => x.Filename == message.Filename));
        }
예제 #6
0
        public QueryPointModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ISettingsManager manager)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <QueryPointRequestMessage>(GetType().FullName,
                                                          QueryPointRequestHandler);
            bus.SubscribeAsync <QueryPointSetMessage>(GetType().FullName,
                                                      QueryPointSetHandler);
        }
예제 #7
0
        public void BrowseRequestHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] SourceFileSelectorModel sut,
            [NotNull] BrowseRequestMessage message)
        {
            // Arrange
            // Act
            sut.BrowseRequestHandler(message);

            // Assert
            bus.Received().PublishAsync(Arg.Any <ShowBrowseDialogMessage>());
        }
        public NumberOfPointsModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ISettingsManager manager)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <NumberOfPointsSetMessage>(GetType().FullName,
                                                          NumberOfPointsSetHandler);
            bus.SubscribeAsync <NumberOfPointsRequestMessage>(GetType().FullName,
                                                              NumberOfPointsRequestHandler);
        }
예제 #9
0
        public void FilenameSetHandler_SetsFilename_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] SourceFileSelectorModel sut,
            [NotNull] FilenameSetMessage message)
        {
            // Arrange
            // Act
            sut.FilenameSetHandler(message);

            // Assert
            Assert.AreEqual(message.Filename,
                            sut.Filename);
        }
        public void NumberOfPointsSetHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] NumberOfPointsModel sut,
            [NotNull] NumberOfPointsSetMessage message)
        {
            // Arrange
            // Act
            sut.NumberOfPointsSetHandler(message);

            // Assert
            bus.Received()
            .PublishAsync(Arg.Is <NumberOfPointsChangedMessage>(x => x.NumberOfPoints == message.NumberOfPoints));
        }
예제 #11
0
        public void ShiftPointSetHandler_SetsZ_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] ShiftPointModel sut,
            [NotNull] ShiftPointSetMessage message)
        {
            // Arrange
            // Act
            sut.ShiftPointSetHandler(message);

            // Assert
            Assert.AreEqual(message.Z,
                            sut.Z);
        }
        public void NumberOfPointsSetHandler_SetsNumberOfPoints_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] NumberOfPointsModel sut,
            [NotNull] NumberOfPointsSetMessage message)
        {
            // Arrange
            // Act
            sut.NumberOfPointsSetHandler(message);

            // Assert
            Assert.AreEqual(message.NumberOfPoints,
                            sut.NumberOfPoints);
        }
예제 #13
0
        public QueryPointViewModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ICommandManager manager,
            [NotNull, UsedImplicitly] IQueryPointModel model)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <QueryPointChangedMessage>(GetType().FullName,
                                                          QueryPointChangedHandler);

            bus.PublishAsync(new QueryPointRequestMessage());
        }
예제 #14
0
        public ClosestPointsFinderViewModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ICommandManager manager,
            [NotNull] ISettingsManager settingsManager,
            [NotNull, UsedImplicitly] IClosestPointsFinderModel model)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <ClosestIdsChangedMessage>(GetType().FullName,
                                                          ClosestIdsChangeHandler);

            bus.PublishAsync(new ClosestIdsRequestMessage());
        }
        public ClosestPointsFinderModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ISettingsManager manager,
            [NotNull] IClosestPointsFinder finder)
        {
            m_Bus     = bus;
            m_Manager = manager;
            m_Finder  = finder;

            bus.SubscribeAsync <ClosestIdsRequestMessage>(GetType().FullName,
                                                          ClosestIdsRequestHandler);
            bus.SubscribeAsync <ClosestIdsCalculateMessage>(GetType().FullName,
                                                            ClosestPointsFinderCalculateHandler);
        }
        public SourceFileSelectorModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ISettingsManager manager)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <BrowseRequestMessage>(GetType().FullName,
                                                      BrowseRequestHandler);
            bus.SubscribeAsync <FilenameSetMessage>(GetType().FullName,
                                                    FilenameSetHandler);
            bus.SubscribeAsync <FilenameRequestMessage>(GetType().FullName,
                                                        FilenameRequestHandler);
        }
예제 #17
0
        public void ShiftPointSetHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] ShiftPointModel sut,
            [NotNull] ShiftPointSetMessage message)
        {
            // Arrange
            // Act
            sut.ShiftPointSetHandler(message);

            // Assert
            bus.Received().PublishAsync(Arg.Is <ShiftPointChangedMessage>(x => Math.Abs(x.X - message.X) < Tolerance &&
                                                                          Math.Abs(x.Y - message.Y) < Tolerance &&
                                                                          Math.Abs(x.Z - message.Z) < Tolerance));
        }
        private static LinesSourceManager CreateManager(ISelkieLogger logger,
                                                        ISelkieBus bus,
                                                        ISelkieInMemoryBus inMemoryBus)
        {
            var factory = Substitute.For <ILinesSourceFactory>();
            factory.Create(Arg.Any <IEnumerable <ILine>>()).Returns(CreateLinesSource);

            var converter = new TestLinesDtoToLinesConverter();

            return new LinesSourceManager(logger,
                                          bus,
                                          inMemoryBus,
                                          factory,
                                          converter);
        }
예제 #19
0
        public NumberOfPointsViewModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ICommandManager manager,
            [NotNull, UsedImplicitly] INumberOfPointsModel model)
        {
            m_Bus     = bus;
            m_Manager = manager;

            bus.SubscribeAsync <NumberOfPointsChangedMessage>(GetType().FullName,
                                                              NumberOfPointsChangedHandler);

            bus.PublishAsync(new NumberOfPointsRequestMessage());

            NumberOfPoints = 1;
        }
        public SourceFileSelectorViewModel(
            [NotNull] ISelkieInMemoryBus bus,
            [NotNull] ICommandManager manager,
            [NotNull, UsedImplicitly] ISourceFileSelectorModel model)
        {
            m_Bus     = bus;
            m_Manager = manager;
            Filename  = DefaultFilename;

            bus.SubscribeAsync <ShowBrowseDialogMessage>(GetType().FullName,
                                                         ShowBrowseDialogHandler);
            bus.SubscribeAsync <FilenameChangedMessage>(GetType().FullName,
                                                        FilenameChangedHandler);

            bus.PublishAsync(new FilenameRequestMessage());
        }
예제 #21
0
        public void FilenameRequestHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISettingsManager manager,
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] SourceFileSelectorModel sut,
            [NotNull] FilenameRequestMessage message)
        {
            // Arrange
            manager.Filename = "Test.txt";

            // Act
            sut.FilenameRequestHandler(message);

            // Assert
            bus.Received()
            .PublishAsync(Arg.Is <FilenameChangedMessage>(x => x.Filename == "Test.txt"));
        }
        public void NumberOfPointsRequestHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] NumberOfPointsModel sut)
        {
            // Arrange
            SetNumberOfPoints(sut,
                              1);

            var message = new NumberOfPointsRequestMessage();

            // Act
            sut.NumberOfPointsRequestHandler(message);

            // Assert
            bus.Received().PublishAsync(Arg.Is <NumberOfPointsChangedMessage>(x => x.NumberOfPoints == 1));
        }
예제 #23
0
        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"));
        }
예제 #24
0
        public void ShiftPointRequestHandler_SendsMessage_ForMessage(
            [NotNull, Frozen] ISelkieInMemoryBus bus,
            [NotNull] ShiftPointModel sut,
            [NotNull] ShiftPointRequestMessage message)
        {
            // Arrange
            SetXyzValues(sut,
                         1.0,
                         2.0,
                         3.0);

            // Act
            sut.ShiftPointRequestHandler(message);

            // Assert
            bus.Received().PublishAsync(Arg.Is <ShiftPointChangedMessage>(x => Math.Abs(x.X - 1.0) < Tolerance &&
                                                                          Math.Abs(x.Y - 2.0) < Tolerance &&
                                                                          Math.Abs(x.Z - 3.0) < Tolerance));
        }