コード例 #1
0
        public void CreatesAndGetsContainers()
        {
            // Arrange
            var dalFacade = new DalFacade(connectionString);
            var container = new ContainerCreationDetails
            {
                Id           = Guid.NewGuid().ToString(),
                ProductCount = 10_000,
                Measurements = new []
                {
                    new TemperatureRecord {
                        Time = new DateTime(2018, 6, 26, 12, 0, 0), Value = 24.6m
                    },
                    new TemperatureRecord {
                        Time = new DateTime(2018, 6, 26, 12, 1, 1), Value = 26.2m
                    },
                    new TemperatureRecord {
                        Time = new DateTime(2018, 6, 26, 12, 3, 9), Value = 27.3m
                    },
                }
            };
            var tripCreationDetails = new TripCreationDetails
            {
                Name             = "NZ to GB",
                SpoilDuration    = 30,
                SpoilTemperature = 28.3m
            };

            // Act
            var tripId = dalFacade.AddTrip(tripCreationDetails);

            dalFacade.AddContainer(tripId, container);
            var containers = dalFacade.GetContainers(tripId);

            // Assert
            Assert.AreEqual(1, containers.Count());
            var retrievedContainer = containers.First();

            Assert.AreEqual(container.Id, retrievedContainer.Id);
            Assert.AreEqual(container.ProductCount, retrievedContainer.ProductCount);
            Assert.AreEqual(3, retrievedContainer.Measurements.Length);
            var measurements = retrievedContainer.Measurements;

            Assert.AreEqual(1, measurements.Count(x => x.Time == container.Measurements[0].Time && x.Value == container.Measurements[0].Value));
            Assert.AreEqual(1, measurements.Count(x => x.Time == container.Measurements[1].Time && x.Value == container.Measurements[1].Value));
            Assert.AreEqual(1, measurements.Count(x => x.Time == container.Measurements[2].Time && x.Value == container.Measurements[2].Value));
        }
    }