예제 #1
0
        private void Init()
        {
            var farmProduct = new FarmProduct("NPK", CoverageType.LitresPerHectare);

            farmProduct.AddCoverage(1, 15);
            farmProduct.AddCoverage(2, 10);
            farmProduct.AddCoverage(3, 10);

            _service.SaveAsync(farmProduct).Wait();
        }
예제 #2
0
        public void CoverageText_should_return_formatted_text_for_coverages_with_multiple_years()
        {
            // Arrange
            var sut = new FarmProduct("123", "Test", CoverageType.KgPerHectare);

            sut.AddCoverage(1, 500);
            sut.AddCoverage(2, 750);
            sut.AddCoverage(3, 1000);

            // Act
            var actual = sut.CoverageText;

            // Assert
            actual.Should().Be("Year 1: 500 kg/ha, Year 2: 750 kg/ha, Year 3 and onwards: 1000 kg/ha");
        }
예제 #3
0
        public void CoverageText_should_return_formatted_text_for_coverage_with_single_year()
        {
            // Arrange
            var sut = new FarmProduct("123", "Test", CoverageType.LitresPerHectare);

            sut.AddCoverage(1, 55);

            // Act
            var actual = sut.CoverageText;

            // Assert
            actual.Should().Be("Year 1 and onwards: 55 lt/ha");
        }
예제 #4
0
        public void AddCoverage_should_add_a_coverage_to_the_FarmProduct()
        {
            // Arrange
            var          sut      = new FarmProduct("123", "Test", CoverageType.KgPerHectare);
            const int    year     = 1;
            const double quantity = 100;

            // Act
            sut.AddCoverage(year, quantity);

            // Assert
            sut.Coverages.Should().HaveCount(1);
            sut.Coverages[0].Year.Should().Be(1);
            sut.Coverages[0].Quantity.Should().Be(100);
        }
        public async Task SaveAsync_should_update_an_existing_entity()
        {
            const string FARM_PRODUCTS_ID_1 = "FarmProducts-1";

            using (var store = NewDocumentStore())
            {
                using (var session = store.OpenAsyncSession())
                {
                    // Arrange
                    var farmProduct = new FarmProduct("NPK", CoverageType.GramsPerPlant);
                    farmProduct.AddCoverage(1, 100);

                    await session.StoreAsync(farmProduct);

                    await session.SaveChangesAsync();

                    // Act
                    var service = GetFarmProductService(session);
                    var actual  = await service.GetAsync(FARM_PRODUCTS_ID_1);

                    actual.Name = "Updated";
                    var model = await service.SaveAsync(actual);

                    model.Entity.Id.Should().Be(FARM_PRODUCTS_ID_1);
                }

                using (var session = store.OpenAsyncSession())
                {
                    // Assert
                    var service = GetFarmProductService(session);
                    var actual  = await service.GetAsync(FARM_PRODUCTS_ID_1);

                    actual.Name.Should().Be("Updated");
                    actual.Coverages.Should().HaveCount(1);
                }
            }
        }