public void GetAnalysisTimestampsForSimulation_ReturnsNull_IfThereIsNoSuchTimestamp()
        {
            //Arrange
            EFSimulationRepository      repository = new EFSimulationRepository();
            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        dto1       = new AnalysisTimestampDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };
            AnalysisTimestampDto dto2 = new AnalysisTimestampDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto3 = new AnalysisTimestampDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto4 = new AnalysisTimestampDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { dto1, dto2, dto3, dto4 });
            clearSimulationsTables();
            repository.UpdateAnalysisTimestamps(timestamps);

            //Act
            AnalysisTimestampDto dto = repository.GetAnalysisTimestamp(1, 1, 1, 4);

            //Assert
            Assert.IsNull(dto);
        }
        public void GetAnalysisTimestampsForSimulation_ReturnsProperDto_IfAnalysisTypeGivenByEnum()
        {
            //Arrange
            EFSimulationRepository      repository = new EFSimulationRepository();
            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        dto1       = new AnalysisTimestampDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };
            AnalysisTimestampDto dto2 = new AnalysisTimestampDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto3 = new AnalysisTimestampDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto4 = new AnalysisTimestampDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { dto1, dto2, dto3, dto4 });
            clearSimulationsTables();
            repository.UpdateAnalysisTimestamps(timestamps);

            //Act
            AnalysisTimestampDto dto = repository.GetAnalysisTimestamp(1, 1, 2, AnalysisType.Prices);

            //Assert
            var areEqual = dto4.Equals(dto);

            Assert.IsTrue(areEqual);
        }
        public void UpdateAnalysisTimestamps_WorksProperly_IfItemsAreOnlyAdded()
        {
            //Arrange
            EFSimulationRepository      repository = new EFSimulationRepository();
            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        dto1       = new AnalysisTimestampDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };
            AnalysisTimestampDto dto2 = new AnalysisTimestampDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto3 = new AnalysisTimestampDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto4 = new AnalysisTimestampDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { dto1, dto2, dto3, dto4 });

            //Act
            clearSimulationsTables();
            repository.UpdateAnalysisTimestamps(timestamps);
            IEnumerable <AnalysisTimestampDto> actualRecords = repository.GetAnalysisTimestamps();

            //Assert
            bool areEqual = timestamps.HasEqualItems(actualRecords);

            Assert.IsTrue(areEqual);
        }
        public void GetAnalysisTimestampsForSimulation_ReturnsEmptyCollection_IfThereIsNoTimestampsForGivenSimulation()
        {
            //Arrange
            EFSimulationRepository      repository = new EFSimulationRepository();
            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        dto1       = new AnalysisTimestampDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };
            AnalysisTimestampDto dto2 = new AnalysisTimestampDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto3 = new AnalysisTimestampDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = null, LastAnalysedIndex = null
            };
            AnalysisTimestampDto dto4 = new AnalysisTimestampDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2017, 2, 4, 14, 15, 0), LastAnalysedIndex = 100
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { dto1, dto2, dto3, dto4 });
            clearSimulationsTables();
            repository.UpdateAnalysisTimestamps(timestamps);

            //Act
            IEnumerable <AnalysisTimestampDto> dtos = repository.GetAnalysisTimestampsForSimulation(3).ToArray();

            //Assert
            IEnumerable <AnalysisTimestampDto> expectedDtos = new AnalysisTimestampDto[] { };
            bool areEqualArrays = expectedDtos.HasEqualItems(dtos);

            Assert.IsTrue(areEqualArrays);
        }
Esempio n. 5
0
        public void CopyProperties_AfterwardAllPropertiesAreEqual()
        {
            //Arrange
            var baseItem = new AnalysisTimestampDto()
            {
                Id               = 1,
                SimulationId     = 1,
                AnalysisTypeId   = 1,
                AssetId          = 1,
                TimeframeId      = 2,
                LastAnalysedItem = new DateTime(2017, 4, 20, 19, 45, 0)
            };

            var comparedItem = new AnalysisTimestampDto()
            {
                Id               = 1,
                SimulationId     = 2,
                AnalysisTypeId   = 2,
                AssetId          = 1,
                TimeframeId      = 2,
                LastAnalysedItem = new DateTime(2017, 4, 18, 19, 30, 0)
            };

            //Act
            comparedItem.CopyProperties(baseItem);
            var areEqual = baseItem.Equals(comparedItem);

            //Assert
            Assert.IsTrue(areEqual);
            Assert.IsFalse(baseItem == comparedItem);
        }
Esempio n. 6
0
        public void GetAnalysisTimestampDtos_ReturnsProperContainer_IfThereAreEntries()
        {
            //Arrange.
            AnalysisTimestampDto timestamp1 = new AnalysisTimestampDto()
            {
                Id = 1, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0), LastAnalysedIndex = 10
            };
            AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto()
            {
                Id = 2, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0), LastAnalysedIndex = 11
            };
            AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto()
            {
                Id = 3, SimulationId = 1, AssetId = 1, TimeframeId = 2, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0), LastAnalysedIndex = 5
            };
            var expectedDtos = new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 };


            //Act.
            Simulation simulation = new Simulation
            {
                Id   = DEFAULT_ID,
                Name = DEFAULT_NAME
            };

            simulation.AddLastUpdate(timestamp1);
            simulation.AddLastUpdate(timestamp2);
            simulation.AddLastUpdate(timestamp3);

            //Assert.
            var result   = simulation.GetAnalysisTimestampDtos();
            var areEqual = expectedDtos.HasEqualItems(result);

            Assert.IsTrue(areEqual);
        }
Esempio n. 7
0
        public void AfterAddLastUpdateByDto_ThisTimestampIsReturned()
        {
            //Arrange
            AnalysisTimestampDto dto = new AnalysisTimestampDto()
            {
                Id                = 1,
                AssetId           = DEFAULT_ASSET_ID,
                TimeframeId       = DEFAULT_TIMEFRAME_ID,
                SimulationId      = DEFAULT_SIMULATION_ID,
                AnalysisTypeId    = DEFAULT_ANALYSIS_TYPE_ID,
                LastAnalysedIndex = DEFAULT_LAST_INDEX,
                LastAnalysedItem  = DEFAULT_LAST_DATE,
            };

            //Act
            Simulation simulation = new Simulation()
            {
                Id = 1, Name = "a"
            };

            simulation.AddLastUpdate(dto);

            //Assert
            AnalysisTimestamp actualLastUpdate = simulation.GetLastUpdate(DEFAULT_ASSET_ID, DEFAULT_TIMEFRAME_ID, AnalysisType.Prices);

            Assert.IsTrue(actualLastUpdate.LastAnalysedItem.IsEqual(DEFAULT_LAST_DATE));
            Assert.IsTrue(actualLastUpdate.LastAnalysedIndex.Equals(DEFAULT_LAST_INDEX));
        }
Esempio n. 8
0
        public void GetSimulationById_ReturnsProperItem_IfItemExists()
        {
            //Arrange
            Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>();
            SimulationDto simulationDto = new SimulationDto()
            {
                Id = 1, Name = "a"
            };

            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        timestamp1 = new AnalysisTimestampDto()
            {
                Id = 1, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0)
            };
            AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto()
            {
                Id = 2, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0)
            };
            AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto()
            {
                Id = 3, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0)
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 });

            mockedRepository.Setup(r => r.GetSimulationById(1)).Returns(simulationDto);
            mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 });

            //Act
            SimulationService service = new SimulationService(mockedRepository.Object);
            var actualSimulation      = service.GetSimulationById(1);

            //Assert
            Simulation expectedSimulation = new Simulation()
            {
                Id = 1, Name = "a"
            };

            expectedSimulation.AddLastUpdate(timestamp1);
            expectedSimulation.AddLastUpdate(timestamp2);
            expectedSimulation.AddLastUpdate(timestamp3);
            bool areEqual = expectedSimulation.Equals(actualSimulation);

            Assert.IsTrue(areEqual);
        }
Esempio n. 9
0
        public void Update_AllItemsPassedToMethodArePassedToRepository()
        {
            //Arrange
            IEnumerable <SimulationDto>        simulationDtos = null;
            IEnumerable <AnalysisTimestampDto> timestampDtos  = null;
            Simulation simulation = new Simulation()
            {
                Id = 1, Name = "a"
            };
            AnalysisTimestamp timestamp1 = new AnalysisTimestamp()
            {
                Id = 1, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0), LastAnalysedIndex = 15
            };
            AnalysisTimestamp timestamp2 = new AnalysisTimestamp()
            {
                Id = 2, SimulationId = 1, AssetId = 1, TimeframeId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 6, 2, 12, 0, 0), LastAnalysedIndex = 19
            };

            simulation.AddLastUpdate(timestamp1);
            simulation.AddLastUpdate(timestamp2);
            Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>();

            mockedRepository.
            Setup(r => r.UpdateSimulations(It.IsAny <IEnumerable <SimulationDto> >())).
            Callback <IEnumerable <SimulationDto> >((col) => simulationDtos = col).Verifiable();
            mockedRepository.
            Setup(r => r.UpdateAnalysisTimestamps(It.IsAny <IEnumerable <AnalysisTimestampDto> >())).
            Callback <IEnumerable <AnalysisTimestampDto> >((col) => timestampDtos = col).Verifiable();

            //Act
            SimulationService service = new SimulationService(mockedRepository.Object);

            service.Update(simulation);

            //Assert
            IEnumerable <SimulationDto>        expectedSimulationDtos = new SimulationDto[] { simulation.ToDto() };
            IEnumerable <AnalysisTimestampDto> expectedTimestampDtos  = new AnalysisTimestampDto[] { timestamp1.ToDto(), timestamp2.ToDto() };

            mockedRepository.Verify(r => r.UpdateSimulations(It.IsAny <IEnumerable <SimulationDto> >()), Times.Exactly(1));
            mockedRepository.Verify(r => r.UpdateAnalysisTimestamps(It.IsAny <IEnumerable <AnalysisTimestampDto> >()), Times.Exactly(1));
            Assert.IsTrue(simulationDtos.HasEqualItems(expectedSimulationDtos));
            Assert.IsTrue(timestampDtos.HasEqualItems(expectedTimestampDtos));
        }
Esempio n. 10
0
        public void GetSimulationById_ReturnsAlwaysTheSameInstance()
        {
            //Arrange
            Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>();
            List <SimulationDto>         dtos             = new List <SimulationDto>();
            SimulationDto simulationDto1 = new SimulationDto()
            {
                Id = 1, Name = "a"
            };

            dtos.AddRange(new SimulationDto[] { simulationDto1 });

            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        timestamp1 = new AnalysisTimestampDto()
            {
                Id = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0)
            };
            AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto()
            {
                Id = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0)
            };
            AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto()
            {
                Id = 3, SimulationId = 1, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0)
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 });

            mockedRepository.Setup(r => r.GetSimulations()).Returns(dtos);
            mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 });

            //Act
            SimulationService service = new SimulationService(mockedRepository.Object);

            //Assert
            Simulation baseSimulation     = service.GetSimulationById(1);
            Simulation comparedSimulation = service.GetSimulationById(1);

            bool areTheSame = (baseSimulation == comparedSimulation);

            Assert.IsTrue(areTheSame);
        }
Esempio n. 11
0
        public void AfterAddLastUpdateByDto_IfItemAlreadyExists_TimestampIsOverwritten()
        {
            //Arrange
            AnalysisTimestamp oldTimestamp = new AnalysisTimestamp()
            {
                Id                = 1,
                AssetId           = DEFAULT_ASSET_ID,
                TimeframeId       = DEFAULT_TIMEFRAME_ID,
                SimulationId      = DEFAULT_SIMULATION_ID,
                AnalysisTypeId    = DEFAULT_ANALYSIS_TYPE_ID,
                LastAnalysedIndex = DEFAULT_LAST_INDEX + 10,
                LastAnalysedItem  = ((DateTime)DEFAULT_LAST_DATE).AddDays(2),
            };
            AnalysisTimestampDto newDto = new AnalysisTimestampDto()
            {
                Id                = 1,
                AssetId           = DEFAULT_ASSET_ID,
                TimeframeId       = DEFAULT_TIMEFRAME_ID,
                SimulationId      = DEFAULT_SIMULATION_ID,
                AnalysisTypeId    = DEFAULT_ANALYSIS_TYPE_ID,
                LastAnalysedIndex = DEFAULT_LAST_INDEX,
                LastAnalysedItem  = DEFAULT_LAST_DATE,
            };


            //Act
            Simulation simulation = new Simulation()
            {
                Id = 1, Name = "a"
            };

            simulation.AddLastUpdate(oldTimestamp);
            simulation.AddLastUpdate(newDto);


            //Assert
            AnalysisTimestamp actualLastUpdate = simulation.GetLastUpdate(DEFAULT_ASSET_ID, DEFAULT_TIMEFRAME_ID, AnalysisType.Prices);

            Assert.IsTrue(actualLastUpdate.LastAnalysedItem.IsEqual(DEFAULT_LAST_DATE));
            Assert.IsTrue(actualLastUpdate.LastAnalysedIndex.Equals(DEFAULT_LAST_INDEX));
        }
Esempio n. 12
0
        public void Constructor_fromDto_hasCorrectProperties()
        {
            //Act.
            AnalysisTimestampDto dto = new AnalysisTimestampDto
            {
                Id                = DEFAULT_ID,
                SimulationId      = DEFAULT_SIMULATION_ID,
                AssetId           = DEFAULT_ASSET_ID,
                TimeframeId       = DEFAULT_TIMEFRAME_ID,
                AnalysisTypeId    = DEFAULT_ANALYSIS_TYPE_ID,
                LastAnalysedItem  = DEFAULT_LAST_DATE,
                LastAnalysedIndex = DEFAULT_LAST_INDEX
            };
            var analysisTimestamp = AnalysisTimestamp.FromDto(dto);

            //Assert.
            Assert.AreEqual(DEFAULT_ID, analysisTimestamp.Id);
            Assert.AreEqual(DEFAULT_SIMULATION_ID, analysisTimestamp.SimulationId);
            Assert.AreEqual(DEFAULT_ASSET_ID, analysisTimestamp.AssetId);
            Assert.AreEqual(DEFAULT_TIMEFRAME_ID, analysisTimestamp.TimeframeId);
            Assert.AreEqual(DEFAULT_ANALYSIS_TYPE_ID, analysisTimestamp.AnalysisTypeId);
            Assert.IsTrue(analysisTimestamp.LastAnalysedItem.IsEqual(DEFAULT_LAST_DATE));
            Assert.AreEqual(DEFAULT_LAST_INDEX, (int)analysisTimestamp.LastAnalysedIndex);
        }
Esempio n. 13
0
        public void GetSimulations_ReturnsProperCollectionOfSimulations_IncludingLastUpdateTimestamps()
        {
            //Arrange
            Mock <ISimulationRepository> mockedRepository = new Mock <ISimulationRepository>();
            List <SimulationDto>         dtos             = new List <SimulationDto>();
            SimulationDto simulationDto1 = new SimulationDto()
            {
                Id = 1, Name = "a"
            };
            SimulationDto simulationDto2 = new SimulationDto()
            {
                Id = 2, Name = "b"
            };
            SimulationDto simulationDto3 = new SimulationDto()
            {
                Id = 3, Name = "c"
            };

            dtos.AddRange(new SimulationDto[] { simulationDto1, simulationDto2, simulationDto3 });

            List <AnalysisTimestampDto> timestamps = new List <AnalysisTimestampDto>();
            AnalysisTimestampDto        timestamp1 = new AnalysisTimestampDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0)
            };
            AnalysisTimestampDto timestamp2 = new AnalysisTimestampDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0)
            };
            AnalysisTimestampDto timestamp3 = new AnalysisTimestampDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 2, SimulationId = 1, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0)
            };
            AnalysisTimestampDto timestamp4 = new AnalysisTimestampDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 1, SimulationId = 2, AnalysisTypeId = 2, LastAnalysedItem = new DateTime(2016, 5, 2, 12, 0, 0)
            };
            AnalysisTimestampDto timestamp5 = new AnalysisTimestampDto()
            {
                Id = 5, AssetId = 1, TimeframeId = 1, SimulationId = 2, AnalysisTypeId = 3, LastAnalysedItem = new DateTime(2016, 5, 2, 13, 0, 0)
            };
            AnalysisTimestampDto timestamp6 = new AnalysisTimestampDto()
            {
                Id = 6, AssetId = 1, TimeframeId = 2, SimulationId = 2, AnalysisTypeId = 4, LastAnalysedItem = new DateTime(2016, 5, 2, 14, 0, 0)
            };

            timestamps.AddRange(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3, timestamp4, timestamp5, timestamp6 });

            mockedRepository.Setup(r => r.GetSimulations()).Returns(dtos);
            mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(1)).Returns(new AnalysisTimestampDto[] { timestamp1, timestamp2, timestamp3 });
            mockedRepository.Setup(r => r.GetAnalysisTimestampsForSimulation(2)).Returns(new AnalysisTimestampDto[] { timestamp4, timestamp5, timestamp6 });

            //Act
            SimulationService service = new SimulationService(mockedRepository.Object);
            var actualSimultations    = service.GetSimulations();

            //Assert
            List <Simulation> expectedSimulations = new List <Simulation>();
            Simulation        simulation1         = new Simulation()
            {
                Id = 1, Name = "a"
            };

            simulation1.AddLastUpdate(timestamp1);
            simulation1.AddLastUpdate(timestamp2);
            simulation1.AddLastUpdate(timestamp3);
            Simulation simulation2 = new Simulation()
            {
                Id = 2, Name = "b"
            };

            simulation2.AddLastUpdate(timestamp4);
            simulation2.AddLastUpdate(timestamp5);
            simulation2.AddLastUpdate(timestamp6);
            Simulation simulation3 = new Simulation()
            {
                Id = 3, Name = "c"
            };

            expectedSimulations.AddRange(new Simulation[] { simulation1, simulation2, simulation3 });
            bool areEqual = expectedSimulations.HasEqualItems(actualSimultations);

            Assert.IsTrue(areEqual);
        }