Commit 64e7f96
Changed files (40)
trunk
product
MyMoney
DataAccess
Domain
accounting
Infrastructure
Container
registries
Threading
Presentation
Model
Projects
Presenters
Resources
Tasks
application
Testing
spechelpers
core
trunk/product/MyMoney/DataAccess/db40/spiking/db40_spike_specs.cs
@@ -30,7 +30,7 @@ namespace MyMoney.DataAccess.db40.spiking
results = database.Query<ITestObject>().databind();
};
- it should_be_able_to_load_the_original_contents = () => assertion_extensions.should_contain(results, original);
+ it should_be_able_to_load_the_original_contents = () => results.should_contain(original);
it they_should_be_equal = () => new TestObject(99, "gretzky").Equals(new TestObject(99, "gretzky"));
trunk/product/MyMoney/DataAccess/db40/ObjectRepository.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
using Db4objects.Db4o;
using MyMoney.Domain.Core;
using MyMoney.Infrastructure.Extensions;
@@ -17,15 +18,21 @@ namespace MyMoney.DataAccess.db40
public IEnumerable<T> all<T>() where T : IEntity
{
- open_session_with_database().Query<T>().each(x => this.log().debug("found item: {0}", x));
- return open_session_with_database().Query<T>();
+ using (var container = open_session_with_database())
+ {
+ container.Query<T>().each(x => this.log().debug("found item: {0}", x));
+ return container.Query<T>().ToList();
+ }
}
public void save<T>(T item) where T : IEntity
{
this.log().debug("saving: {0}, {1}", item.ToString(), item.Id);
- open_session_with_database().Store(item);
- open_session_with_database().Commit();
+ using (var container = open_session_with_database())
+ {
+ container.Store(item);
+ container.Commit();
+ }
}
IObjectContainer open_session_with_database()
trunk/product/MyMoney/DataAccess/db40/ObjectRepositorySpecs.cs
@@ -4,7 +4,7 @@ using jpboodhoo.bdd.contexts;
using MyMoney.Domain.Core;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
-using assertion_extensions=MyMoney.Testing.spechelpers.core.assertion_extensions;
+using MyMoney.Testing.spechelpers.core;
using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
namespace MyMoney.DataAccess.db40
@@ -26,8 +26,8 @@ namespace MyMoney.DataAccess.db40
{
it should_return_all_the_items_from_the_database = () =>
{
- assertion_extensions.should_contain(result, first_item);
- assertion_extensions.should_contain(result, second_item);
+ result.should_contain(first_item);
+ result.should_contain(second_item);
};
context c = () =>
@@ -36,9 +36,8 @@ namespace MyMoney.DataAccess.db40
second_item = an<IEntity>();
var session = an<IObjectContainer>();
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(factory, x => x.create()), session);
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(session, x => x.Query<IEntity>()), new List<IEntity>
- {first_item, second_item});
+ factory.is_told_to(x => x.create()).it_will_return(session);
+ session.is_told_to(x => x.Query<IEntity>()).it_will_return(new List<IEntity> {first_item, second_item});
};
because b = () => { result = sut.all<IEntity>(); };
trunk/product/MyMoney/DataAccess/db40/session_factory.cs
@@ -1,57 +0,0 @@
-using System;
-using Castle.Core;
-using Db4objects.Db4o;
-using MyMoney.Presentation.Model.Projects;
-using MyMoney.Utility.Core;
-
-namespace MyMoney.DataAccess.db40
-{
- public interface ISessionFactory : IFactory<IObjectContainer>
- {
- }
-
- [Singleton]
- public class session_factory : ISessionFactory, IDisposable
- {
- readonly IDatabaseConfiguration database_configuration;
- readonly IConnectionFactory connection_factory;
- IFile currently_opened_database_file;
- IObjectContainer opened_connection;
-
- public session_factory(IDatabaseConfiguration database_configuration, IConnectionFactory connection_factory)
- {
- this.database_configuration = database_configuration;
- this.connection_factory = connection_factory;
- }
-
- public IObjectContainer create()
- {
- var path_to_the_database = database_configuration.path_to_the_database();
- if (path_to_the_database.Equals(currently_opened_database_file))
- {
- return opened_connection;
- }
- return open_connection_to(path_to_the_database);
- }
-
- IObjectContainer open_connection_to(IFile path_to_the_database)
- {
- close_the_current_connection();
- currently_opened_database_file = path_to_the_database;
- opened_connection = connection_factory.open_connection_to(currently_opened_database_file);
- return opened_connection;
- }
-
- public void Dispose()
- {
- close_the_current_connection();
- }
-
- void close_the_current_connection()
- {
- if (null == opened_connection) return;
- opened_connection.Close();
- opened_connection.Dispose();
- }
- }
-}
\ No newline at end of file
trunk/product/MyMoney/DataAccess/db40/session_factory_specs.cs
@@ -1,104 +0,0 @@
-using Db4objects.Db4o;
-using jpboodhoo.bdd.contexts;
-using MyMoney.Presentation.Model.Projects;
-using MyMoney.Testing.MetaData;
-using MyMoney.Testing.spechelpers.contexts;
-using MyMoney.Testing.spechelpers.core;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
-
-namespace MyMoney.DataAccess.db40
-{
- [Concern(typeof (session_factory))]
- public abstract class behaves_like_a_session_factory : concerns_for<ISessionFactory, session_factory>
- {
- public override ISessionFactory create_sut()
- {
- return new session_factory(database_configuration, connection_factory);
- }
-
- context c = () =>
- {
- connection_factory = the_dependency<IConnectionFactory>();
- database_configuration = the_dependency<IDatabaseConfiguration>();
- };
-
- protected static IConnectionFactory connection_factory;
- protected static IDatabaseConfiguration database_configuration;
- }
-
- public class when_creating_a_new_session_to_a_db40_database : behaves_like_a_session_factory
- {
- it should_open_a_new_connection_to_the_database = () => result.should_be_equal_to(session);
-
- context c =
- () =>
- {
- var the_path_to_the_database_file = an<IFile>();
- session = an<IObjectContainer>();
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(database_configuration, x => x.path_to_the_database()), the_path_to_the_database_file);
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(connection_factory, x => x.open_connection_to(the_path_to_the_database_file)), session);
- };
-
- because b = () => { result = sut.create(); };
-
- static IObjectContainer result;
- static IObjectContainer session;
- }
-
- public class when_creating_a_session_for_a_file_that_has_already_been_opened : behaves_like_a_session_factory
- {
- it should_only_open_the_connection_once =
- () => mocking_extensions.was_told_to(connection_factory, x => x.open_connection_to(the_path_to_the_database_file)).only_once();
-
- it should_return_the_original_connection = () => result.should_be_equal_to(original_connection);
-
- context c = () =>
- {
- the_path_to_the_database_file = an<IFile>();
- original_connection = an<IObjectContainer>();
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(when_the(database_configuration), x => x.path_to_the_database()), the_path_to_the_database_file);
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(when_the(connection_factory), x => x.open_connection_to(the_path_to_the_database_file)), original_connection);
- };
-
- because b = () =>
- {
- result = sut.create();
- result = sut.create();
- };
-
- static IFile the_path_to_the_database_file;
- static IObjectContainer result;
- static IObjectContainer original_connection;
- }
-
- public class when_opening_a_new_file_after_one_has_already_been_opened : behaves_like_a_session_factory
- {
- it should_close_the_previous_file = () => mocking_extensions.was_told_to(original_connection, x => x.Close()).only_once();
-
- context c = () =>
- {
- var the_path_to_the_database_file = an<IFile>();
- var a_new_path = an<IFile>();
- original_connection = an<IObjectContainer>();
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(database_configuration, x => x.path_to_the_database()), the_path_to_the_database_file)
- .Repeat.Once();
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(database_configuration, x => x.path_to_the_database()), a_new_path)
- .Repeat.Once();
-
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(connection_factory, x => x.open_connection_to(the_path_to_the_database_file)), original_connection);
- };
-
- because b = () =>
- {
- sut.create();
- sut.create();
- };
-
- static IObjectContainer original_connection;
- }
-}
\ No newline at end of file
trunk/product/MyMoney/DataAccess/db40/SessionFactory.cs
@@ -0,0 +1,26 @@
+using Db4objects.Db4o;
+using MyMoney.Utility.Core;
+
+namespace MyMoney.DataAccess.db40
+{
+ public interface ISessionFactory : IFactory<IObjectContainer>
+ {
+ }
+
+ public class SessionFactory : ISessionFactory
+ {
+ readonly IDatabaseConfiguration database_configuration;
+ readonly IConnectionFactory connection_factory;
+
+ public SessionFactory(IDatabaseConfiguration database_configuration, IConnectionFactory connection_factory)
+ {
+ this.database_configuration = database_configuration;
+ this.connection_factory = connection_factory;
+ }
+
+ public IObjectContainer create()
+ {
+ return connection_factory.open_connection_to(database_configuration.path_to_the_database());
+ }
+ }
+}
\ No newline at end of file
trunk/product/MyMoney/DataAccess/db40/SessionFactorySpecs.cs
@@ -0,0 +1,47 @@
+using Db4objects.Db4o;
+using jpboodhoo.bdd.contexts;
+using MyMoney.Presentation.Model.Projects;
+using MyMoney.Testing.MetaData;
+using MyMoney.Testing.spechelpers.contexts;
+using MyMoney.Testing.spechelpers.core;
+
+namespace MyMoney.DataAccess.db40
+{
+ [Concern(typeof (SessionFactory))]
+ public abstract class behaves_like_a_session_factory : concerns_for<ISessionFactory, SessionFactory>
+ {
+ public override ISessionFactory create_sut()
+ {
+ return new SessionFactory(database_configuration, connection_factory);
+ }
+
+ context c = () =>
+ {
+ connection_factory = the_dependency<IConnectionFactory>();
+ database_configuration = the_dependency<IDatabaseConfiguration>();
+ };
+
+ protected static IConnectionFactory connection_factory;
+ protected static IDatabaseConfiguration database_configuration;
+ }
+
+ public class when_creating_a_new_session_to_a_db40_database : behaves_like_a_session_factory
+ {
+ it should_open_a_new_connection_to_the_database = () => result.should_be_equal_to(session);
+
+ context c =
+ () =>
+ {
+ var the_path_to_the_database_file = an<IFile>();
+ session = an<IObjectContainer>();
+
+ database_configuration.is_told_to(x => x.path_to_the_database()).it_will_return( the_path_to_the_database_file);
+ connection_factory.is_told_to(x => x.open_connection_to(the_path_to_the_database_file)). it_will_return(session);
+ };
+
+ because b = () => { result = sut.create(); };
+
+ static IObjectContainer result;
+ static IObjectContainer session;
+ }
+}
\ No newline at end of file
trunk/product/MyMoney/DataAccess/repositories/bill_repository_specs.cs
@@ -1,16 +1,18 @@
+using System;
using System.Collections.Generic;
using jpboodhoo.bdd.contexts;
using MyMoney.Domain.accounting.billing;
+using MyMoney.Domain.Core;
using MyMoney.Testing.spechelpers.contexts;
-using assertion_extensions=MyMoney.Testing.spechelpers.core.assertion_extensions;
+using MyMoney.Testing.spechelpers.core;
namespace MyMoney.DataAccess.repositories
{
public class when_loading_all_the_bills_from_the_repository : behaves_like_a_repository
{
- it should_return_all_the_bills_in_the_database = () => assertion_extensions.should_contain(results, first_bill);
+ public it should_return_all_the_bills_in_the_database = () => results.should_contain(first_bill);
- context c = () => { first_bill = an<IBill>(); };
+ context c = () => { first_bill = new Bill(new Company("mokhan.ca"), new Money(1, 00), DateTime.Now); };
because b = () =>
{
trunk/product/MyMoney/Domain/accounting/billing/Bill.cs
@@ -14,9 +14,10 @@ namespace MyMoney.Domain.accounting.billing
IDate due_date { get; }
}
- internal class bill : Entity<IBill>, IBill
+ [Serializable]
+ internal class Bill : Entity<IBill>, IBill
{
- public bill(ICompany company_to_pay, IMoney the_amount_owed, DateTime due_date)
+ public Bill(ICompany company_to_pay, IMoney the_amount_owed, DateTime due_date)
{
this.company_to_pay = company_to_pay;
this.the_amount_owed = the_amount_owed;
@@ -44,7 +45,7 @@ namespace MyMoney.Domain.accounting.billing
return payments.return_value_from_visiting_all_items_with(new total_payments_calculator());
}
- public bool Equals(bill obj)
+ public bool Equals(Bill obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
@@ -56,8 +57,8 @@ namespace MyMoney.Domain.accounting.billing
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
- if (obj.GetType() != typeof (bill)) return false;
- return Equals((bill) obj);
+ if (obj.GetType() != typeof (Bill)) return false;
+ return Equals((Bill) obj);
}
public override int GetHashCode()
trunk/product/MyMoney/Domain/accounting/billing/bill_specs.cs → trunk/product/MyMoney/Domain/accounting/billing/BillSpecs.cs
@@ -7,19 +7,19 @@ using MyMoney.Testing.spechelpers.core;
namespace MyMoney.Domain.accounting.billing
{
- [Concern(typeof (bill))]
+ [Concern(typeof (Bill))]
public class when_checking_to_see_if_a_new_bill_has_been_paid_for : concerns_for<IBill>
{
it should_return_false = () => result.should_be_equal_to(false);
public override IBill create_sut()
{
- return new bill(enmax, amount_owed, DateTime.Now);
+ return new Bill(enmax, amount_owed, DateTime.Now);
}
context c = () =>
{
- amount_owed = new money(100);
+ amount_owed = new Money(100);
enmax = an<ICompany>();
};
@@ -30,7 +30,7 @@ namespace MyMoney.Domain.accounting.billing
static ICompany enmax;
}
- [Concern(typeof (bill))]
+ [Concern(typeof (Bill))]
public class when_checking_if_a_paid_bill_has_been_paid_for : concerns_for<IBill>
{
it should_return_true = () => result.should_be_equal_to(true);
@@ -38,7 +38,7 @@ namespace MyMoney.Domain.accounting.billing
context c = () =>
{
- one_hundred_twenty_three_dollars_fourty_five_cents = new money(123, 45);
+ one_hundred_twenty_three_dollars_fourty_five_cents = new Money(123, 45);
direct_energy = an<ICompany>();
};
@@ -50,7 +50,7 @@ namespace MyMoney.Domain.accounting.billing
public override IBill create_sut()
{
- return new bill(direct_energy, one_hundred_twenty_three_dollars_fourty_five_cents, DateTime.Now);
+ return new Bill(direct_energy, one_hundred_twenty_three_dollars_fourty_five_cents, DateTime.Now);
}
static IMoney one_hundred_twenty_three_dollars_fourty_five_cents;
@@ -58,7 +58,7 @@ namespace MyMoney.Domain.accounting.billing
static ICompany direct_energy;
}
- [Concern(typeof (bill))]
+ [Concern(typeof (Bill))]
public class when_checking_if_two_bills_are_the_same_and_they_are : concerns_for<IBill>
{
it should_return_true = () => result.should_be_equal_to(true);
@@ -70,11 +70,11 @@ namespace MyMoney.Domain.accounting.billing
due_date = new DateTime(2008, 01, 01);
};
- because b = () => { result = sut.Equals(new bill(company, new money(0), due_date)); };
+ because b = () => { result = sut.Equals(new Bill(company, new Money(0), due_date)); };
public override IBill create_sut()
{
- return new bill(company, new money(0), due_date);
+ return new Bill(company, new Money(0), due_date);
}
static ICompany company;
trunk/product/MyMoney/Domain/accounting/billing/Company.cs
@@ -23,7 +23,7 @@ namespace MyMoney.Domain.accounting.billing
public void issue_bill_to(IAccountHolder customer, DateTime that_is_due_on, IMoney for_amount)
{
- customer.recieve(new bill(this, for_amount, that_is_due_on));
+ customer.recieve(new Bill(this, for_amount, that_is_due_on));
}
public void pay(IAccountHolder person, IMoney amount, IDate date_of_payment)
trunk/product/MyMoney/Domain/accounting/billing/company_specs.cs
@@ -11,24 +11,24 @@ namespace MyMoney.Domain.accounting.billing
[Concern(typeof (Company))]
public abstract class behaves_like_a_company : concerns_for<ICompany>
{
- protected string company_name;
-
public override ICompany create_sut()
{
company_name = "enmax";
return new Company(company_name);
}
+
+ protected string company_name;
}
public class when_a_company_issues_a_bill_to_a_customer : behaves_like_a_company
{
it should_issue_the_bill_to_the_customer_for_the_previous_billing_month =
- () => customer.was_told_to(x => x.recieve(new bill(sut, for_amount, that_is_due_on)));
+ () => customer.was_told_to(x => x.recieve(new Bill(sut, for_amount, that_is_due_on)));
context c = () =>
{
customer = an<IAccountHolder>();
- for_amount = new money(53, 24);
+ for_amount = new Money(53, 24);
that_is_due_on = new DateTime(2008, 02, 12);
};
@@ -46,14 +46,14 @@ namespace MyMoney.Domain.accounting.billing
context c = () =>
{
- two_thousand_dollars = new money(2000);
+ two_thousand_dollars = new Money(2000);
person = an<IAccountHolder>();
date_of_payment = an<IDate>();
};
because b = () => sut.pay(person, two_thousand_dollars, date_of_payment);
- static money two_thousand_dollars;
+ static Money two_thousand_dollars;
static IAccountHolder person;
static IDate date_of_payment;
}
trunk/product/MyMoney/Domain/accounting/billing/Payment.cs
@@ -1,3 +1,4 @@
+using System;
using MyMoney.Domain.Core;
namespace MyMoney.Domain.accounting.billing
@@ -7,6 +8,7 @@ namespace MyMoney.Domain.accounting.billing
IMoney amount_paid { get; }
}
+ [Serializable]
internal class Payment : Entity<IPayment>, IPayment
{
public Payment(IMoney amount_paid)
trunk/product/MyMoney/Domain/accounting/billing/total_payments_calculator.cs
@@ -19,7 +19,7 @@ namespace MyMoney.Domain.accounting.billing
public void reset()
{
- value = new money(0);
+ value = new Money(0);
}
}
}
\ No newline at end of file
trunk/product/MyMoney/Domain/accounting/financial_growth/income.cs
@@ -1,3 +1,4 @@
+using System;
using MyMoney.Domain.accounting.billing;
using MyMoney.Domain.Core;
@@ -10,6 +11,7 @@ namespace MyMoney.Domain.accounting.financial_growth
ICompany company { get; }
}
+ [Serializable]
internal class Income : Entity<IIncome>, IIncome
{
public Income(IDate date_of_issue, IMoney amount_tendered, ICompany company)
trunk/product/MyMoney/Domain/accounting/financial_growth/income_extensions.cs
@@ -7,7 +7,7 @@ namespace MyMoney.Domain.accounting.financial_growth
{
public static IMoney in_the(this IEnumerable<IIncome> income_collected, IYear year)
{
- IMoney income_for_year = new money(0);
+ IMoney income_for_year = new Money(0);
foreach (var income in income_collected) {
if (income.date_of_issue.is_in(year)) {
income_for_year = income_for_year.add(income.amount_tendered);
trunk/product/MyMoney/Domain/accounting/account_holder.cs → trunk/product/MyMoney/Domain/accounting/AccountHolder.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using MyMoney.Domain.accounting.billing;
using MyMoney.Domain.accounting.financial_growth;
@@ -14,9 +15,10 @@ namespace MyMoney.Domain.accounting
IMoney calculate_income_for(IYear year);
}
- internal class account_holder : Entity<IAccountHolder>, IAccountHolder
+ [Serializable]
+ internal class AccountHolder : Entity<IAccountHolder>, IAccountHolder
{
- public account_holder()
+ public AccountHolder()
{
all_bills = new List<IBill>();
income_collected = new List<IIncome>();
trunk/product/MyMoney/Domain/accounting/account_holder_specs.cs → trunk/product/MyMoney/Domain/accounting/AccountHolderSpecs.cs
@@ -7,16 +7,15 @@ using MyMoney.Domain.Core;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
using MyMoney.Testing.spechelpers.core;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
namespace MyMoney.Domain.accounting
{
- [Concern(typeof (account_holder))]
+ [Concern(typeof (AccountHolder))]
public abstract class behaves_like_an_account_holder : concerns_for<IAccountHolder>
{
public override IAccountHolder create_sut()
{
- return new account_holder();
+ return new AccountHolder();
}
}
@@ -24,8 +23,8 @@ namespace MyMoney.Domain.accounting
{
it should_return_all_the_unpaid_bills = () =>
{
- assertion_extensions.should_contain(result, first_unpaid_bill);
- assertion_extensions.should_contain(result, second_unpaid_bill);
+ result.should_contain(first_unpaid_bill);
+ result.should_contain(second_unpaid_bill);
};
context c = () =>
@@ -34,9 +33,9 @@ namespace MyMoney.Domain.accounting
second_unpaid_bill = an<IBill>();
paid_bill = an<IBill>();
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(first_unpaid_bill, x => x.is_paid_for()), false);
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(second_unpaid_bill, x => x.is_paid_for()), false);
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(paid_bill, x => x.is_paid_for()), true);
+ first_unpaid_bill.is_told_to(x => x.is_paid_for()).it_will_return(false);
+ second_unpaid_bill.is_told_to(x => x.is_paid_for()).it_will_return(false);
+ paid_bill.is_told_to(x => x.is_paid_for()).it_will_return(true);
};
because b = () =>
@@ -53,7 +52,7 @@ namespace MyMoney.Domain.accounting
static IBill paid_bill;
}
- [Concern(typeof (account_holder))]
+ [Concern(typeof (AccountHolder))]
public class when_an_account_holder_is_calculating_their_income_for_a_year : behaves_like_an_account_holder
{
context c = () =>
@@ -62,14 +61,14 @@ namespace MyMoney.Domain.accounting
income_for_february_2007 = an<IIncome>();
income_for_february_2008 = an<IIncome>();
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_january_2007, x => x.date_of_issue), new DateTime(2007, 01, 01).as_a_date());
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_january_2007, x => x.amount_tendered), new money(1000, 00));
+ income_for_january_2007.is_told_to(x => x.date_of_issue).it_will_return( new DateTime(2007, 01, 01).as_a_date());
+ income_for_january_2007.is_told_to(x => x.amount_tendered). it_will_return(new Money(1000, 00));
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_february_2007, x => x.date_of_issue), new DateTime(2007, 02, 01).as_a_date());
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_february_2007, x => x.amount_tendered), new money(1000, 00));
+ income_for_february_2007.is_told_to(x => x.date_of_issue).it_will_return (new DateTime(2007, 02, 01).as_a_date());
+ income_for_february_2007.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000, 00));
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_february_2008, x => x.date_of_issue), new DateTime(2008, 02, 01).as_a_date());
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(income_for_february_2008, x => x.amount_tendered), new money(1000, 00));
+ income_for_february_2008.is_told_to(x => x.date_of_issue).it_will_return( new DateTime(2008, 02, 01).as_a_date());
+ income_for_february_2008.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000, 00));
};
because b = () =>
trunk/product/MyMoney/Domain/accounting/general_ledger.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using MyMoney.Domain.accounting.billing;
using MyMoney.Domain.Core;
@@ -10,6 +11,7 @@ namespace MyMoney.Domain.accounting
IEnumerable<ILedgerEntry> get_all_the_entries_for(IMonth month);
}
+ [Serializable]
public class general_ledger : IGeneralLedger
{
private readonly List<ILedgerEntry> entries;
trunk/product/MyMoney/Domain/accounting/GeneralLedgerSpecs.cs
@@ -5,7 +5,7 @@ using MyMoney.Domain.accounting.billing;
using MyMoney.Domain.Core;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
-using assertion_extensions=MyMoney.Testing.spechelpers.core.assertion_extensions;
+using MyMoney.Testing.spechelpers.core;
using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
namespace MyMoney.Domain.accounting
@@ -34,12 +34,12 @@ namespace MyMoney.Domain.accounting
{
it should_return_all_the_entries_posted_for_that_month = () =>
{
- assertion_extensions.should_contain(result, february_first);
- assertion_extensions.should_contain(result, february_twenty_first);
+ result.should_contain(february_first);
+ result.should_contain(february_twenty_first);
};
it should_not_return_any_entries_that_were_not_posted_for_that_month =
- () => assertion_extensions.should_not_contain(result, april_first);
+ () => assertions.should_not_contain(result, april_first);
context c = () =>
{
@@ -47,9 +47,9 @@ namespace MyMoney.Domain.accounting
february_twenty_first = an<ILedgerEntry>();
april_first = an<ILedgerEntry>();
- mocking_extensions.is_told_to(february_first, x => x.entry_date()).Return(new DateTime(2008, 02, 01));
- mocking_extensions.is_told_to(february_twenty_first, x => x.entry_date()).Return(new DateTime(2008, 02, 21));
- mocking_extensions.is_told_to(april_first, x => x.entry_date()).Return(new DateTime(2008, 04, 01));
+ february_first.is_told_to(x => x.entry_date()).it_will_return(new DateTime(2008, 02, 01));
+ february_twenty_first.is_told_to(x => x.entry_date()).it_will_return(new DateTime(2008, 02, 21));
+ april_first.is_told_to(x => x.entry_date()).it_will_return(new DateTime(2008, 04, 01));
};
because b = () => { result = sut.get_all_the_entries_for(Months.February); };
trunk/product/MyMoney/Domain/Core/Clock.cs
@@ -2,7 +2,7 @@ using System;
namespace MyMoney.Domain.Core
{
- public class Clock
+ public static class Clock
{
private static Func<DateTime> time_provider;
@@ -11,7 +11,7 @@ namespace MyMoney.Domain.Core
reset();
}
- public static date today()
+ public static Date today()
{
return time_provider();
}
trunk/product/MyMoney/Domain/Core/date.cs
@@ -10,11 +10,12 @@ namespace MyMoney.Domain.Core
DateTime to_date_time();
}
- public class date : IDate, IEquatable<date>
+ [Serializable]
+ public class Date : IDate, IEquatable<Date>
{
private readonly long ticks;
- public date(int year, int month, int day)
+ public Date(int year, int month, int day)
{
ticks = new DateTime(year, month, day).Ticks;
}
@@ -29,19 +30,19 @@ namespace MyMoney.Domain.Core
return new DateTime(ticks);
}
- public static implicit operator date(DateTime date)
+ public static implicit operator Date(DateTime date)
{
- return new date(date.Year, date.Month, date.Day);
+ return new Date(date.Year, date.Month, date.Day);
}
- public static implicit operator DateTime(date date)
+ public static implicit operator DateTime(Date date)
{
return date.to_date_time();
}
public int CompareTo(IDate other)
{
- var the_other_date = other.downcast_to<date>();
+ var the_other_date = other.downcast_to<Date>();
if (ticks.Equals(the_other_date.ticks))
{
return 0;
@@ -49,7 +50,7 @@ namespace MyMoney.Domain.Core
return ticks > the_other_date.ticks ? 1 : -1;
}
- public bool Equals(date obj)
+ public bool Equals(Date obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
@@ -65,8 +66,8 @@ namespace MyMoney.Domain.Core
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
- if (obj.GetType() != typeof (date)) return false;
- return Equals((date) obj);
+ if (obj.GetType() != typeof (Date)) return false;
+ return Equals((Date) obj);
}
public override int GetHashCode()
trunk/product/MyMoney/Domain/Core/date_extensions.cs
@@ -6,7 +6,7 @@ namespace MyMoney.Domain.Core
{
public static IDate as_a_date(this DateTime date)
{
- return (date) date;
+ return (Date) date;
}
public static IYear as_a_year(this int year)
trunk/product/MyMoney/Domain/Core/date_specs.cs
@@ -5,32 +5,32 @@ using MyMoney.Testing.spechelpers.core;
namespace MyMoney.Domain.Core
{
- [Concern(typeof (date))]
+ [Concern(typeof (Date))]
public class when_two_dates_that_represent_the_same_day_are_asked_if_they_are_equal : concerns_for<IDate>
{
it should_return_true = () => result.should_be_equal_to(true);
public override IDate create_sut()
{
- return new date(2008, 09, 25);
+ return new Date(2008, 09, 25);
}
- because b = () => { result = sut.Equals(new date(2008, 09, 25)); };
+ because b = () => { result = sut.Equals(new Date(2008, 09, 25)); };
static bool result;
}
- [Concern(typeof (date))]
+ [Concern(typeof (Date))]
public class when_an_older_date_is_compared_to_a_younger_date : concerns_for<IDate>
{
- it should_return_a_positive_number = () => assertion_extensions.should_be_greater_than(result, 0);
+ it should_return_a_positive_number = () => result.should_be_greater_than(0);
public override IDate create_sut()
{
- return new date(2008, 09, 25);
+ return new Date(2008, 09, 25);
}
- because b = () => { result = sut.CompareTo(new date(2007, 01, 01)); };
+ because b = () => { result = sut.CompareTo(new Date(2007, 01, 01)); };
static int result;
}
trunk/product/MyMoney/Domain/Core/day.cs
@@ -3,20 +3,22 @@ using System;
namespace MyMoney.Domain.Core
{
public interface IDay
- {}
+ {
+ }
- internal class day : IDay
+ [Serializable]
+ internal class Day : IDay
{
- private readonly DateTime the_underlying_date;
- private readonly int the_day;
+ readonly DateTime the_underlying_date;
+ readonly int the_day;
- public day(DateTime the_underlying_date)
+ public Day(DateTime the_underlying_date)
{
this.the_underlying_date = the_underlying_date;
the_day = the_underlying_date.Day;
}
- public bool Equals(day obj)
+ public bool Equals(Day obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
@@ -27,8 +29,8 @@ namespace MyMoney.Domain.Core
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
- if (obj.GetType() != typeof (day)) return false;
- return Equals((day) obj);
+ if (obj.GetType() != typeof (Day)) return false;
+ return Equals((Day) obj);
}
public override int GetHashCode()
trunk/product/MyMoney/Domain/Core/Money.cs
@@ -10,12 +10,13 @@ namespace MyMoney.Domain.Core
IMoney add(IMoney other);
}
- internal class money : IMoney
+ [Serializable]
+ internal class Money : IMoney
{
- public money(long dollars) : this(dollars, 0)
+ public Money(long dollars) : this(dollars, 0)
{}
- public money(long dollars, int cents)
+ public Money(long dollars, int cents)
{
this.dollars = dollars;
this.cents = cents;
@@ -34,9 +35,9 @@ namespace MyMoney.Domain.Core
if (other.cents + cents > 100) {
++new_dollars;
var pennies = cents + other.cents - 100;
- return new money(new_dollars, pennies);
+ return new Money(new_dollars, pennies);
}
- return new money(new_dollars, cents + other.cents);
+ return new Money(new_dollars, cents + other.cents);
}
public bool Equals(IMoney other)
trunk/product/MyMoney/Domain/Core/money_extensions.cs
@@ -13,7 +13,7 @@ namespace MyMoney.Domain.Core
var roundedAmount = mantissa >= .5m ? .01*(wholePart + 1) : .01*wholePart;
var cents = (roundedAmount*100).to_int();
- return new money(cents/100, cents%100);
+ return new Money(cents/100, cents%100);
}
public static IMoney as_money(this int amount)
@@ -25,7 +25,7 @@ namespace MyMoney.Domain.Core
var roundedAmount = mantissa >= .5m ? .01*(wholePart + 1) : .01*wholePart;
var cents = (roundedAmount*100).to_int();
- return new money(cents/100, cents%100);
+ return new Money(cents/100, cents%100);
}
}
}
\ No newline at end of file
trunk/product/MyMoney/Domain/Core/money_extensions_specs.cs
@@ -6,7 +6,7 @@ namespace MyMoney.Domain.Core
{
public class when_converting_a_valid_amount_to_a_money : concerns_for
{
- it should_return_the_correct_money = () => result.should_be_equal_to(new money(1, 99));
+ it should_return_the_correct_money = () => result.should_be_equal_to(new Money(1, 99));
because b = () => { result = 1.99.as_money(); };
trunk/product/MyMoney/Domain/Core/money_specs.cs → trunk/product/MyMoney/Domain/Core/MoneySpecs.cs
@@ -5,47 +5,47 @@ using MyMoney.Testing.spechelpers.core;
namespace MyMoney.Domain.Core
{
- [Concern(typeof (money))]
+ [Concern(typeof (Money))]
public class when_adding_two_monies_together : concerns_for<IMoney>
{
- it should_return_the_correct_money = () => result.should_be_equal_to(new money(2, 98));
+ it should_return_the_correct_money = () => result.should_be_equal_to(new Money(2, 98));
- because b = () => { result = sut.add(new money(1, 99)); };
+ because b = () => { result = sut.add(new Money(1, 99)); };
public override IMoney create_sut()
{
- return new money(0, 99);
+ return new Money(0, 99);
}
static IMoney result;
}
- [Concern(typeof (money))]
+ [Concern(typeof (Money))]
public class when_two_monies_of_the_same_value_are_compared_to_one_another : concerns_for<IMoney>
{
it they_should_be_equal = () => result.should_be_equal_to(true);
- because b = () => { result = sut.Equals(new money(1, 99)); };
+ because b = () => { result = sut.Equals(new Money(1, 99)); };
public override IMoney create_sut()
{
- return new money(1, 99);
+ return new Money(1, 99);
}
static bool result;
}
- [Concern(typeof (money))]
+ [Concern(typeof (Money))]
public class when_creating_a_money_with_pennies_greater_than_a_dollar : concerns_for<IMoney>
{
it should_create_a_money_representing_the_correct_amount_of_dollars_and_pennies =
- () => sut.should_be_equal_to(new money(3, 00));
+ () => sut.should_be_equal_to(new Money(3, 00));
public override IMoney create_sut()
{
- return new money(1, 200);
+ return new Money(1, 200);
}
}
}
\ No newline at end of file
trunk/product/MyMoney/Domain/Core/Month.cs
@@ -6,4 +6,48 @@ namespace MyMoney.Domain.Core
{
bool represents(DateTime date);
}
+
+ [Serializable]
+ internal class Month : IMonth
+ {
+ readonly int the_underlying_month;
+ readonly string name_of_the_month;
+
+ internal Month(int month, string name_of_the_month)
+ {
+ the_underlying_month = month;
+ this.name_of_the_month = name_of_the_month;
+ Months.add(this);
+ }
+
+ public bool represents(DateTime date)
+ {
+ return date.Month.Equals(the_underlying_month);
+ }
+
+ public bool Equals(Month obj)
+ {
+ if (ReferenceEquals(null, obj)) return false;
+ if (ReferenceEquals(this, obj)) return true;
+ return obj.the_underlying_month == the_underlying_month;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj)) return false;
+ if (ReferenceEquals(this, obj)) return true;
+ if (obj.GetType() != typeof (Month)) return false;
+ return Equals((Month) obj);
+ }
+
+ public override int GetHashCode()
+ {
+ return the_underlying_month;
+ }
+
+ public override string ToString()
+ {
+ return name_of_the_month;
+ }
+ }
}
\ No newline at end of file
trunk/product/MyMoney/Domain/Core/Months.cs
@@ -4,22 +4,22 @@ using System.Linq;
namespace MyMoney.Domain.Core
{
- public class Months
+ public static class Months
{
- private static readonly IList<IMonth> all_months = new List<IMonth>();
-
- public static readonly IMonth January = new month(01, "January");
- public static readonly IMonth February = new month(02, "February");
- public static readonly IMonth March = new month(03, "March");
- public static readonly IMonth April = new month(04, "April");
- public static readonly IMonth May = new month(05, "May");
- public static readonly IMonth June = new month(06, "June");
- public static readonly IMonth July = new month(07, "July");
- public static readonly IMonth August = new month(08, "August");
- public static readonly IMonth September = new month(09, "September");
- public static readonly IMonth October = new month(10, "October");
- public static readonly IMonth November = new month(11, "November");
- public static readonly IMonth December = new month(12, "December");
+ static readonly IList<IMonth> all_months = new List<IMonth>();
+
+ public static readonly IMonth January = new Month(01, "January");
+ public static readonly IMonth February = new Month(02, "February");
+ public static readonly IMonth March = new Month(03, "March");
+ public static readonly IMonth April = new Month(04, "April");
+ public static readonly IMonth May = new Month(05, "May");
+ public static readonly IMonth June = new Month(06, "June");
+ public static readonly IMonth July = new Month(07, "July");
+ public static readonly IMonth August = new Month(08, "August");
+ public static readonly IMonth September = new Month(09, "September");
+ public static readonly IMonth October = new Month(10, "October");
+ public static readonly IMonth November = new Month(11, "November");
+ public static readonly IMonth December = new Month(12, "December");
public static IMonth that_represents(DateTime the_underlying_date)
{
@@ -30,48 +30,5 @@ namespace MyMoney.Domain.Core
{
all_months.Add(month);
}
-
- private class month : IMonth
- {
- private readonly int the_underlying_month;
- private readonly string name_of_the_month;
-
- internal month(int month, string name_of_the_month)
- {
- the_underlying_month = month;
- this.name_of_the_month = name_of_the_month;
- add(this);
- }
-
- public bool represents(DateTime date)
- {
- return date.Month.Equals(the_underlying_month);
- }
-
- public bool Equals(month obj)
- {
- if (ReferenceEquals(null, obj)) return false;
- if (ReferenceEquals(this, obj)) return true;
- return obj.the_underlying_month == the_underlying_month;
- }
-
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj)) return false;
- if (ReferenceEquals(this, obj)) return true;
- if (obj.GetType() != typeof (month)) return false;
- return Equals((month) obj);
- }
-
- public override int GetHashCode()
- {
- return the_underlying_month;
- }
-
- public override string ToString()
- {
- return name_of_the_month;
- }
- }
}
}
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Container/Windsor/windsor_dependency_registry_specs.cs
@@ -4,7 +4,6 @@ using jpboodhoo.bdd.contexts;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
using MyMoney.Testing.spechelpers.core;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
namespace MyMoney.Infrastructure.Container.Windsor
{
@@ -14,7 +13,7 @@ namespace MyMoney.Infrastructure.Container.Windsor
it should_return_the_same_instance_each_time_its_resolved =
() => result.should_be_the_same_instance_as(sut.get_a<IBird>());
- it should_not_return_null = () => assertion_extensions.should_not_be_null(result);
+ it should_not_return_null = () => result.should_not_be_null();
public override IDependencyRegistry create_sut()
{
@@ -29,7 +28,7 @@ namespace MyMoney.Infrastructure.Container.Windsor
[Concern(typeof (windsor_dependency_registry))]
public class when_creating_the_windsor_resolver_ : concerns_for<IDependencyRegistry>
{
- it should_leverage_the_factory_to_create_the_underlying_container = () => mocking_extensions.was_told_to(factory, f => f.create());
+ it should_leverage_the_factory_to_create_the_underlying_container = () => factory.was_told_to(f => f.create());
public override IDependencyRegistry create_sut()
{
@@ -40,7 +39,7 @@ namespace MyMoney.Infrastructure.Container.Windsor
{
var container = an<IWindsorContainer>();
factory = an<IWindsorContainerFactory>();
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(factory, f => f.create()), container);
+ factory.is_told_to(f => f.create()).it_will_return(container);
};
trunk/product/MyMoney/Infrastructure/registries/default_registry_specs.cs
@@ -4,8 +4,7 @@ using MyMoney.Domain.Core;
using MyMoney.Infrastructure.Container;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
-using assertion_extensions=MyMoney.Testing.spechelpers.core.assertion_extensions;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
+using MyMoney.Testing.spechelpers.core;
namespace MyMoney.Infrastructure.registries
{
@@ -14,16 +13,15 @@ namespace MyMoney.Infrastructure.registries
concerns_for<IRegistry<int>, default_registry<int>>
{
it should_leverage_the_resolver_to_retrieve_all_the_implementations =
- () => mocking_extensions.was_told_to(registry, r => r.all_the<int>());
+ () => registry.was_told_to(r => r.all_the<int>());
- it should_return_the_items_resolved_by_the_registry = () => assertion_extensions.should_contain(result, 24);
+ it should_return_the_items_resolved_by_the_registry = () => result.should_contain(24);
context c = () =>
{
var items_to_return = new List<int> {24};
-
registry = an<IDependencyRegistry>();
- mocking_extensions.it_will_return(mocking_extensions.is_told_to(registry, r => r.all_the<int>()), items_to_return);
+ registry.is_told_to(r => r.all_the<int>()).it_will_return(items_to_return);
};
public override IRegistry<int> create_sut()
trunk/product/MyMoney/Infrastructure/Threading/background_thread_factory_specs.cs
@@ -2,14 +2,14 @@ using jpboodhoo.bdd.contexts;
using MyMoney.Infrastructure.Container;
using MyMoney.Testing.MetaData;
using MyMoney.Testing.spechelpers.contexts;
+using MyMoney.Testing.spechelpers.core;
using MyMoney.Utility.Core;
-using assertion_extensions=MyMoney.Testing.spechelpers.core.assertion_extensions;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
namespace MyMoney.Infrastructure.Threading
{
[Concern(typeof (background_thread_factory))]
- public abstract class behaves_like_a_background_thread_factory : concerns_for<IBackgroundThreadFactory, background_thread_factory>
+ public abstract class behaves_like_a_background_thread_factory :
+ concerns_for<IBackgroundThreadFactory, background_thread_factory>
{
public override IBackgroundThreadFactory create_sut()
{
@@ -23,10 +23,10 @@ namespace MyMoney.Infrastructure.Threading
public class when_creating_a_background_thread : behaves_like_a_background_thread_factory
{
- it should_return_an_instance_of_a_background_thread = () => assertion_extensions.should_not_be_null(result);
+ it should_return_an_instance_of_a_background_thread = () => result.should_not_be_null();
it should_lookup_an_instance_of_the_command_to_execute =
- () => mocking_extensions.was_told_to(registry, r => r.get_a<IDisposableCommand>());
+ () => registry.was_told_to(r => r.get_a<IDisposableCommand>());
because b = () => { result = sut.create_for<IDisposableCommand>(); };
trunk/product/MyMoney/Presentation/Model/Projects/file.cs
@@ -1,3 +1,4 @@
+using System;
using System.IO;
using MyMoney.Infrastructure.Extensions;
@@ -28,6 +29,13 @@ namespace MyMoney.Presentation.Model.Projects
{
this.log().debug("copying file {0} to {1}", path, file_to_overwrite.path);
File.Copy(path, file_to_overwrite.path, true);
+
+ //using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+ //{
+ // var content = new byte[fs.Length];
+ // fs.Read(content, 0, Convert.ToInt32(fs.Length));
+ // File.WriteAllBytes(file_to_overwrite.path, content);
+ //}
}
public static implicit operator ApplicationFile(string file_path)
trunk/product/MyMoney/Presentation/Presenters/income/add_new_income_presenter_specs.cs
@@ -72,7 +72,7 @@ namespace MyMoney.Presentation.Presenters.income
{
var a_company = an<ICompany>();
var matching_income = an<IIncome>();
- var today = new date(2008, 12, 26);
+ var today = new Date(2008, 12, 26);
income = new income_submission_dto
{
trunk/product/MyMoney/Presentation/Resources/ApplicationImage.cs
@@ -13,7 +13,14 @@ namespace MyMoney.Presentation.Resources
public ApplicationImage(string name_of_the_image)
{
this.name_of_the_image = name_of_the_image;
- underlying_image = Image.FromFile(FullPathToTheFile(this));
+ try
+ {
+ underlying_image = Image.FromFile(FullPathToTheFile(this));
+ }
+ catch (Exception exception)
+ {
+ Console.WriteLine(exception);
+ }
}
public static implicit operator Image(ApplicationImage image_to_convert)
trunk/product/MyMoney/Tasks/application/CustomerTasks.cs
@@ -26,7 +26,7 @@ namespace MyMoney.Tasks.application
var c = repository.all<IAccountHolder>().SingleOrDefault();
if (null == c) {
- return new account_holder();
+ return new AccountHolder();
}
return c;
trunk/product/MyMoney/Testing/spechelpers/core/assertion_extensions.cs → trunk/product/MyMoney/Testing/spechelpers/core/assertions.cs
@@ -6,7 +6,7 @@ using MbUnit.Framework;
namespace MyMoney.Testing.spechelpers.core
{
- public static class assertion_extensions
+ public static class assertions
{
[AssertionMethod]
public static void should_be_equal_to<T>(this T item_to_validate, T expected_value)
trunk/product/MyMoney/MyMoney.csproj
@@ -174,19 +174,19 @@
<Compile Include="Domain\Core\Entity.cs" />
<Compile Include="Domain\Core\date.cs" />
<Compile Include="Domain\Core\IRepository.cs" />
- <Compile Include="DataAccess\db40\session_factory.cs" />
- <Compile Include="DataAccess\db40\session_factory_specs.cs" />
+ <Compile Include="DataAccess\db40\SessionFactory.cs" />
+ <Compile Include="DataAccess\db40\SessionFactorySpecs.cs" />
<Compile Include="Domain\accounting\billing\billing_extensions.cs" />
<Compile Include="Domain\accounting\billing\Company.cs" />
<Compile Include="Domain\accounting\billing\company_specs.cs" />
- <Compile Include="Domain\accounting\account_holder.cs" />
- <Compile Include="Domain\accounting\account_holder_specs.cs" />
+ <Compile Include="Domain\accounting\AccountHolder.cs" />
+ <Compile Include="Domain\accounting\AccountHolderSpecs.cs" />
<Compile Include="Domain\accounting\billing\total_payments_calculator.cs" />
<Compile Include="Domain\Core\IYear.cs" />
<Compile Include="Domain\Core\money_extensions.cs" />
<Compile Include="Domain\Core\money_extensions_specs.cs" />
<Compile Include="Domain\accounting\financial_growth\income_specs.cs" />
- <Compile Include="Domain\Core\money_specs.cs" />
+ <Compile Include="Domain\Core\MoneySpecs.cs" />
<Compile Include="Domain\Core\range.cs" />
<Compile Include="Domain\Core\range_specs.cs" />
<Compile Include="Domain\repositories\company_repository_extensions.cs" />
@@ -221,7 +221,7 @@
<Compile Include="Infrastructure\registries\default_registry.cs" />
<Compile Include="Infrastructure\registries\default_registry_specs.cs" />
<Compile Include="Domain\accounting\billing\Bill.cs" />
- <Compile Include="Domain\accounting\billing\bill_specs.cs" />
+ <Compile Include="Domain\accounting\billing\BillSpecs.cs" />
<Compile Include="Domain\accounting\general_ledger.cs" />
<Compile Include="Domain\accounting\GeneralLedgerSpecs.cs" />
<Compile Include="Domain\accounting\billing\ILedgerEntry.cs" />
@@ -663,7 +663,7 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Testing\Call.cs" />
- <Compile Include="Testing\spechelpers\core\assertion_extensions.cs" />
+ <Compile Include="Testing\spechelpers\core\assertions.cs" />
<Compile Include="Testing\spechelpers\core\mocking_extensions.cs" />
<Compile Include="Testing\MetaData\ConcernAttribute.cs" />
<Compile Include="windows.ui\start_the_application.cs" />