1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.Facilities
.AutomaticTransactionManagement
.Tests
18 using Castle
.MicroKernel
;
19 using Castle
.Services
.Transaction
;
20 using NUnit
.Framework
;
23 /// Summary description for CustomerService.
26 public class CustomerService
28 private readonly IKernel kernel
;
30 public CustomerService(IKernel kernel
)
35 [Transaction(TransactionMode
.Requires
)]
36 public virtual void Insert( String name
, String address
)
41 [Transaction(TransactionMode
.Requires
)]
42 public virtual void Delete( int id
)
44 throw new ApplicationException("Whopps. Problems!");
48 public virtual void Update(int id
)
50 ITransactionManager tm
= (ITransactionManager
) kernel
[typeof(ITransactionManager
)];
52 Assert
.IsNotNull(tm
.CurrentTransaction
);
53 Assert
.AreEqual(TransactionStatus
.Active
, tm
.CurrentTransaction
.Status
);
55 tm
.CurrentTransaction
.SetRollbackOnly();
57 Assert
.AreEqual(TransactionStatus
.Active
, tm
.CurrentTransaction
.Status
);