コード例 #1
0
ファイル: DiscountManagerTests.cs プロジェクト: chipshoot/hmm
        private List <GasDiscount> SetupEnvironment()
        {
            var discounts = new List <GasDiscount>();
            var discount  = new GasDiscount
            {
                Program      = "Costco membership",
                Amount       = 0.6m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                Comment      = "Test Discount",
                IsActive     = true,
            };
            var rec = _manager.Create(discount);

            discounts.Add(rec);

            discount = new GasDiscount
            {
                Program      = "Petro-Canada membership",
                Amount       = 0.2m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                Comment      = "Test Discount 2",
                IsActive     = true,
            };

            rec = _manager.Create(discount);
            discounts.Add(rec);

            return(discounts);
        }
コード例 #2
0
        public void DiscountMustHaveValid_Author()
        {
            // Arrange
            var discount = new GasDiscount
            {
                Program      = "Petro-Canada membership",
                Amount       = new Money(0.8),
                DiscountType = GasDiscountType.PerLiter
            };

            // Act

            var processResult = new ProcessingResult();
            var result        = _validator.IsValidEntity(discount, processResult);

            // Assert
            Assert.False(result);
            Assert.Single(processResult.MessageList);
        }
コード例 #3
0
        public void ValidDiscountCanPassValidation()
        {
            // Arrange
            var discount = new GasDiscount
            {
                AuthorId     = _authorId,
                Program      = "Petro-Canada membership",
                Amount       = new Money(0.8),
                DiscountType = GasDiscountType.PerLiter
            };

            // Act

            var processResult = new ProcessingResult();
            var result        = _validator.IsValidEntity(discount, processResult);

            // Assert
            Assert.True(result);
            Assert.Empty(processResult.MessageList);
        }
コード例 #4
0
ファイル: DiscountManagerTests.cs プロジェクト: chipshoot/hmm
        public void CanCreateDiscount()
        {
            // Arrange
            var discount = new GasDiscount
            {
                Program      = "Costco membership",
                Amount       = 0.6m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                Comment      = "Test Discount",
                IsActive     = true,
            };

            // Act
            var savedDisc = _manager.Create(discount);

            // Assert
            Assert.NotNull(savedDisc);
            Assert.True(savedDisc.Id >= 1, "savedDisc.Id>=1");
            Assert.Equal(_authorId.ToString(), savedDisc.AuthorId.ToString());
        }
コード例 #5
0
        public void Can_Parse_Discount_String_Content(string contentText)
        {
            // Arrange
            var xmlDoc = XDocument.Parse(string.Format(NoteXmlTextBase, XmlNamespace, contentText));

            var discount = new GasDiscount
            {
                Program      = "Petro-Canada membership",
                Amount       = 0.8m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                IsActive     = true
            };

            // Act
            var note = _noteSerializer.GetNote(discount);

            // Assert
            Assert.True(_noteSerializer.ProcessResult.Success);
            Assert.NotNull(note);
            Assert.Equal(AutomobileConstant.GasDiscountRecordSubject, note.Subject);
            Assert.Equal(note.Content, xmlDoc.ToString(SaveOptions.DisableFormatting));
        }
コード例 #6
0
        public void Can_Get_Right_Xml_With_Null_Note_Content_To_DataSource()
        {
            // Arrange - note with null content
            var discount = new GasDiscount
            {
                //AuthorId = DefaultAuthor.Id,
                Program      = "Petro-Canada membership",
                Amount       = 0.8m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                IsActive     = true
            };
            var xmlDoc = XDocument.Parse(
                $"<?xml version=\"1.0\" encoding=\"utf-16\" ?><Note xmlns=\"{XmlNamespace}\"><Content><GasDiscount><Program>Petro-Canada membership</Program><Amount><Money><Value>0.8</Value><Code>CAD</Code></Money></Amount><DiscountType>PerLiter</DiscountType><IsActive>true</IsActive><Comment /></GasDiscount></Content></Note>");

            // Act
            var note = _noteSerializer.GetNote(discount);

            // Assert
            Assert.True(_noteSerializer.ProcessResult.Success);
            Assert.Equal(note.Content, xmlDoc.ToString(SaveOptions.DisableFormatting));
            Assert.NotNull(note);
        }
コード例 #7
0
        public void Can_Get_Discount_By_Parse_Valid_Note_Xml()
        {
            // Arrange
            var xmlDoc = XDocument.Parse(
                $"<?xml version=\"1.0\" encoding=\"utf-16\" ?><Note xmlns=\"{XmlNamespace}\"><Content><GasDiscount><Program>&lt;Petro&gt;-\"Canada\" membership</Program><Amount><Money><Value>0.8</Value><Code>CAD</Code></Money></Amount><DiscountType>PerLiter</DiscountType><IsActive>true</IsActive><Comment /></GasDiscount></Content></Note>");
            var note = new HmmNote
            {
                Id               = 1,
                Author           = _author,
                Subject          = AutomobileConstant.GasDiscountRecordSubject,
                Content          = xmlDoc.ToString(SaveOptions.DisableFormatting),
                CreateDate       = DateTime.Now,
                LastModifiedDate = DateTime.Now
            };

            var discountExpected = new GasDiscount
            {
                Id = 1,
                //AuthorId = DefaultAuthor.Id,
                Program      = "<Petro>-\"Canada\" membership",
                Amount       = 0.8m.GetCad(),
                DiscountType = GasDiscountType.PerLiter,
                IsActive     = true
            };

            // Act
            var discount = _noteSerializer.GetEntity(note);

            // Assert
            Assert.True(_noteSerializer.ProcessResult.Success);
            Assert.NotNull(discount);
            Assert.Equal(discountExpected.Id, discount.Id);
            Assert.Equal(discountExpected.Program, discount.Program);
            Assert.Equal(discountExpected.Amount, discount.Amount);
            Assert.Equal(discountExpected.DiscountType, discount.DiscountType);
            Assert.Equal(discountExpected.IsActive, discount.IsActive);
            Assert.Equal(_author.Id.ToString(), discount.AuthorId.ToString());
        }
コード例 #8
0
 public void ValidGasLogCanPassValidation()
 {
     // Arrange
     var log = new GasLog
     {
         AuthorId            = _authorId,
         Date                = DateProvider.UtcNow,
         Car                 = new AutomobileInfo(),
         CurrentMeterReading = 30000.GetKilometer(),
         Distance            = 340.GetKilometer(),
         Gas                 = 40d.GetLiter(),
         Price               = 1.34m.GetCad(),
         Station             = "Costco",
         CreateDate          = DateProvider.UtcNow,
         Discounts           = new List <GasDiscountInfo>
         {
             new()
             {
                 Program = new GasDiscount {
                     Amount = 0.8m.GetCad(), Program = "Petro-Canada membership", DiscountType = GasDiscountType.PerLiter, AuthorId = _authorId
                 },
                 Amount = 0.8m.GetCad()
             }
         },