1- // Copyright (C) 2014 Xtensive LLC.
2- // All rights reserved .
3- // For conditions of distribution and use, see license .
1+ // Copyright (C) 2014 Xtensive LLC.
2+ // This code is distributed under MIT license terms .
3+ // See the License.txt file in the project root for more information .
44// Created by: Alexey Kulakov
55// Created: 2013.09.26
66
77using System ;
88using System . Linq ;
99using NUnit . Framework ;
1010using Xtensive . Orm . Configuration ;
11+ using Xtensive . Orm . Services ;
1112using Xtensive . Orm . Tests . Issues . IssueJira0556_ArithmeticExceptionWhenSubstractionOfDatesModel ;
1213
1314namespace Xtensive . Orm . Tests . Issues . IssueJira0556_ArithmeticExceptionWhenSubstractionOfDatesModel
@@ -39,34 +40,36 @@ protected override DomainConfiguration BuildConfiguration()
3940 return domainConfiguration ;
4041 }
4142
43+ protected override void CheckRequirements ( ) => Require . ProviderIsNot ( StorageProvider . Firebird , "No type that would allow to fix it" ) ;
44+
4245 protected override void PopulateData ( )
4346 {
4447 using ( var session = Domain . OpenSession ( ) )
4548 using ( session . Activate ( ) )
4649 using ( var tx = session . OpenTransaction ( ) ) {
47- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 10 ) } ;
48- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 100 ) } ;
49- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 1000 ) } ;
50- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 10000 ) } ;
51- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 100000 ) } ;
52- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 106751 ) } ;
53- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 120000 ) } ;
54- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 130000 ) } ;
55- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 140000 ) } ;
56- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 150000 ) } ;
57- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 160000 ) } ;
58- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 170000 ) } ;
59- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 180000 ) } ;
60- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 190000 ) } ;
61- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 200000 ) } ;
62- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 300000 ) } ;
63- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 400000 ) } ;
64- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 500000 ) } ;
65- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 600000 ) } ;
66- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 700000 ) } ;
67- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 800000 ) } ;
68- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 900000 ) } ;
69- new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 1000000 ) } ;
50+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 10 ) } ;
51+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 100 ) } ;
52+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 1000 ) } ;
53+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 10000 ) } ;
54+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 100000 ) } ;
55+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 106751 ) } ;
56+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 120000 ) } ;
57+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 130000 ) } ;
58+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 140000 ) } ;
59+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 150000 ) } ;
60+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 160000 ) } ;
61+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 170000 ) } ;
62+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 180000 ) } ;
63+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 190000 ) } ;
64+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 200000 ) } ;
65+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 300000 ) } ;
66+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 400000 ) } ;
67+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 500000 ) } ;
68+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 600000 ) } ;
69+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 700000 ) } ;
70+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 800000 ) } ;
71+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 900000 ) } ;
72+ _ = new Invoice { CreatedOn = DateTime . MinValue . AddYears ( 100 ) , InvoicedOn = DateTime . MinValue . AddYears ( 100 ) . AddDays ( 1000000 ) } ;
7073 tx . Complete ( ) ;
7174 }
7275 }
@@ -75,7 +78,6 @@ protected override void PopulateData()
7578 public void MainTest ( )
7679 {
7780 using ( var session = Domain . OpenSession ( ) )
78- using ( session . Activate ( ) )
7981 using ( var tx = session . OpenTransaction ( ) ) {
8082 var result = session . Query . All < Invoice > ( ) . Where ( invoice => ( invoice . CreatedOn - invoice . InvoicedOn ) > TimeSpan . FromHours ( 1 ) ) . ToList ( ) ;
8183 }
0 commit comments