Refactored the Kernel registration fluent interface to be more readable, better suppo...
[castle.git] / Facilities / IBatisNet / Castle.Facilities.IBatisNetIntegration.Tests / Service.cs
blob144902d5b273360f4944df1bd23acf51086abc9a
1 #region License
3 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 // --
18 //
19 // This facility was a contribution kindly
20 // donated by Gilles Bayon <gilles.bayon@gmail.com>
21 //
22 // --
24 #endregion
26 namespace Castle.Facilities.IBatisNetIntegration.Tests
28 using System;
29 using Castle.Facilities.IBatisNetIntegration.Tests.Dao;
30 using Castle.Facilities.IBatisNetIntegration.Tests.Domain;
31 using Castle.Services.Transaction;
33 /// <summary>
34 /// Description résumée de Service.
35 /// </summary>
36 /// <remarks>
37 /// If no sql map key is defined by
38 /// [Session("sqlMap.key")]
39 /// on a method definition
40 /// The first regsitration will be used
41 /// </remarks>
42 [Transactional]
43 [UsesAutomaticSessionCreation]
44 public class Service : IService
46 private IAccountDao _accountDao;
48 public Service(IAccountDao accountDao)
50 _accountDao = accountDao;
53 #region IService Members
55 public Account GetAccount(int id)
57 return _accountDao.GetAccount(id);
60 // Specify wich Data Mapper to use
61 [Session(AbstractIBatisNetTestCase.DATA_MAPPER)]
62 [Transaction(TransactionMode.Requires)]
63 public Account GetAccountWithSpecificDataMapper(int id)
65 return _accountDao.GetAccount(id);
68 public void InsertAccount(Account account)
70 _accountDao.InsertAccount(account);
73 [Transaction(TransactionMode.Requires)]
74 public void InsertTransactionalAccount(Account account)
76 _accountDao.InsertAccount(account);
79 public void ResetTableAccount()
81 _accountDao.ResetTableAccount();
84 [NoSession]
85 public void DummyNoSession()
87 Console.WriteLine("No session will be open since we're using the NoSession attribute");
90 [Transaction(TransactionMode.Requires)]
91 public void InsertTransactionalAccountWithError(Account account)
93 _accountDao.InsertAccount(account);
95 throw new ApplicationException("Ugh!");
98 #endregion