Markus Ewald
|
74bf351727
|
Changed all remaining COMPACTFRAMEWORK constants around serialization code to NO_SERIALIZATION
git-svn-id: file:///srv/devel/repo-conversion/nusu@157 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-26 20:17:59 +00:00 |
|
Markus Ewald
|
8f16d09c8a
|
Fixed compilation error on XBox 360
git-svn-id: file:///srv/devel/repo-conversion/nusu@156 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-25 19:36:18 +00:00 |
|
Markus Ewald
|
5d36825fc8
|
Attempt to fix a possible bug in the generic time source class which could potentially attempt to construct an instance of System.DateTime with an invalid tick count
git-svn-id: file:///srv/devel/repo-conversion/nusu@155 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-24 20:24:21 +00:00 |
|
Markus Ewald
|
839d46ecf1
|
The CommandLine class didn't construct command lines with empty arguments correctly (these need to be passed as empty quotes to be recognizable as an argument), fixed; added unit tests that exposes this bug; some minor cosmetic fixes
git-svn-id: file:///srv/devel/repo-conversion/nusu@154 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-24 19:20:26 +00:00 |
|
Markus Ewald
|
ce9a6bc932
|
Added a unit tests that reproduces the bug fixed in the previous commit
git-svn-id: file:///srv/devel/repo-conversion/nusu@153 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-22 18:54:12 +00:00 |
|
Markus Ewald
|
f8adca9e17
|
Fixed a glaring bug in the Scheduler causing errors when the scheduler's last item in the queue is cancelled
git-svn-id: file:///srv/devel/repo-conversion/nusu@152 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-22 18:14:45 +00:00 |
|
Markus Ewald
|
b38284d372
|
The unlimited Wait() test still didn't produce 100% coverage - somehow the thread overtook the code creating it - added a Sleep(1) to fix this...
git-svn-id: file:///srv/devel/repo-conversion/nusu@151 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-19 19:36:25 +00:00 |
|
Markus Ewald
|
128feac03e
|
Reduced the likelihood of the unlimited wait test for the transaction class resulting in a code coverage of less than 100%
git-svn-id: file:///srv/devel/repo-conversion/nusu@150 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-17 21:07:34 +00:00 |
|
Markus Ewald
|
4fd22afcc0
|
Fixed two small typos
git-svn-id: file:///srv/devel/repo-conversion/nusu@149 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-15 20:15:43 +00:00 |
|
Markus Ewald
|
6d7f4d11af
|
Minor cosmetic fix in comment
git-svn-id: file:///srv/devel/repo-conversion/nusu@148 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-09 19:49:55 +00:00 |
|
Markus Ewald
|
d6ddf04f58
|
On very quickly scheduled recurrent notifications, it was still possible for the wait time to become negative due to the passage of time - now the scheduler will only use the WaitOne() method when the remaining time until notification is positive
git-svn-id: file:///srv/devel/repo-conversion/nusu@147 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-09 19:47:30 +00:00 |
|
Markus Ewald
|
6b8362d57d
|
Fixed a nasty bug that would make the scheduler queue notifications using their delay time as absolute notification time, causing negative numbers to be passed to WaitOne(); updated unit test to expose this problem if it happens
git-svn-id: file:///srv/devel/repo-conversion/nusu@146 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-09 19:41:38 +00:00 |
|
Markus Ewald
|
a6f7749121
|
Moved the checkForTimeAdjustment() method in the generic time source behind the WaitOne() call because that's the most likely point for a date/time adjustment will have occurred at; WindowsTimeSource now exists on the XBox 360 as well, but will throw in its constructor and report Available as false (this simplifies things in other places); Scheduler class is fully working and 100% testable with simulated time (instead of waiting for scheduled notifications to be delivered in real time, which would make testing slow); added unit tests for Scheduler class and reached 100% coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@145 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-09 19:28:11 +00:00 |
|
Markus Ewald
|
4b9002b520
|
Renamed DefaultTimeSource to GenericTimeSource; the generic time source will now detect when the system date/time is adjusted; made some progress on the Scheduler implementation; wrote some unit tests for the Scheduler class
git-svn-id: file:///srv/devel/repo-conversion/nusu@144 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-08 20:32:14 +00:00 |
|
Markus Ewald
|
2426868cce
|
Improved comments in various places; disabled all classes in the 'Services' namespace, including the type listers; added scheduler class which will act sort of like the cron daemon on unix machines; defined a time source interface so I can manually advance time instead of waiting in the unit tests; created two time sources, a generic one for all platforms and a windows specific one that will notice when the system time is adjusted
git-svn-id: file:///srv/devel/repo-conversion/nusu@143 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-06-04 19:32:15 +00:00 |
|
Markus Ewald
|
10d6533b50
|
Added an obvious, simple and important optimization: when Transaction.Wait() is called, the transaction will not create a WaitHandle if it has already ended
git-svn-id: file:///srv/devel/repo-conversion/nusu@142 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-28 19:55:48 +00:00 |
|
Markus Ewald
|
0ada9998e2
|
Renamed AssemblyTypeLister to MultiAssemblyTypeLister because otherwise, the name implies that it's a type lister for a single assembly; renamed PredefinedTypeLister to ExplicitTypeLister which is more intuitive; disabled all service manager code unless ENABLE_SERVICEMANAGER is defined (while it's under development); improved documentation for the multi assembly type lister; removed resolveContract() delegate and generic overloads
git-svn-id: file:///srv/devel/repo-conversion/nusu@141 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-28 19:50:30 +00:00 |
|
Markus Ewald
|
c9d9810c28
|
Added prototype factory - a factory which created instances by cloning a prototype instance; redesigned the service manager to query types from an ITypeLister interface instead of tightly coupling it with the PluginRepository class; added type listers that list all assemblies in an app domain, in a PluginRepository and in a predefined list; renamed the IProgressTrackingService to IProgressCollectingService to make it perfectly clear which service is for which purpose; added Instancing.None to disallow the service manager from providing a certain contract; added CPL headers where they were missing
git-svn-id: file:///srv/devel/repo-conversion/nusu@140 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-27 19:55:06 +00:00 |
|
Markus Ewald
|
4e2beb71b8
|
Removed ConcreteType property from IAbstractFactory<> interface (it was a really strange decision to add it in the first place, luckily it hasn't crept anywhere so far); provided a non-generic abstract factory interface; the factories returned by the factory employer now implement the non-generic factory interface
git-svn-id: file:///srv/devel/repo-conversion/nusu@139 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-27 19:51:54 +00:00 |
|
Markus Ewald
|
41dcfa34d0
|
Added prototype code for an inversion-of-control container and a progress tracking service; moved XmlHelper class from Nuclex.UserInterface to Nuclex.Support; Nuclex.Support now uses the .NET Framework's own AssemblyLoadEventArgs class if it is compiled for the full framework; fixed a bug in the Request class that would cause exceptions to not be reported if Join() was called on a Request<x> was casted to a plain Request
git-svn-id: file:///srv/devel/repo-conversion/nusu@138 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-20 20:14:21 +00:00 |
|
Markus Ewald
|
d0fe47239e
|
Replaced all ExpectedExceptionAttributes with the new Assert.Throws<>() method to work around a compatibility issue between TeamCity 4.5 and NUnit 2.5 Final
git-svn-id: file:///srv/devel/repo-conversion/nusu@137 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-07 19:36:27 +00:00 |
|
Markus Ewald
|
06749b9cbb
|
Converted AssertHelperTest from using the ExpectedExceptionAttribute to Assert.Throws<>() - let's see if this makes TeamCity happy
git-svn-id: file:///srv/devel/repo-conversion/nusu@136 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-07 19:07:28 +00:00 |
|
Markus Ewald
|
d845b08a91
|
IObservableCollection was internal - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@135 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-06 18:42:08 +00:00 |
|
Markus Ewald
|
7e9e0e2bf1
|
Made code in OperationQueue more readable; added new class PartialStream which wraps a segment of a larger stream as if it was a separate stream, allowing access to certain regions of a stream to be prohibited and headers of a stream to be cut off without requiring a lengthy copy operation
git-svn-id: file:///srv/devel/repo-conversion/nusu@134 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-05-05 19:31:05 +00:00 |
|
Markus Ewald
|
1c317b3f66
|
Moved RingMemoryStream class from the Collections namespace to the IO namespace
git-svn-id: file:///srv/devel/repo-conversion/nusu@133 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-28 20:44:36 +00:00 |
|
Markus Ewald
|
f2280629b9
|
The command line class can now also be used to build a command line (for example, to pass it to another program); removed dead code from the command line class
git-svn-id: file:///srv/devel/repo-conversion/nusu@132 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-23 20:23:23 +00:00 |
|
Markus Ewald
|
66b4a762cf
|
Added a class for chaining together multiple System.IO.Stream instances into a single stream; minor improvements to docs; improved an exception error message in the StringSegment class
git-svn-id: file:///srv/devel/repo-conversion/nusu@131 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-22 18:55:59 +00:00 |
|
Markus Ewald
|
a2331b95c1
|
Removed the old command line parser since its replacement is fully functional by now; the CommandLine class now provides a HasArgument() method for convenience; added experimental parsing for pre-split command lines (as provided by .NET's Main() method) and disabled it because it turned out to be a bad idea
git-svn-id: file:///srv/devel/repo-conversion/nusu@130 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-15 19:54:01 +00:00 |
|
Markus Ewald
|
47b0039137
|
Reactivated and fixed the command line parser; command line parser now creates a value on too many option initiators (like "//test" or "---test"); renamed CommandLine.Option to CommandLine.Argument; command line parser now uses the CommandLine.Argument class for all arguments (this enables interpreters to be build that understand spaced arguments because the order is kept intact); quoted value no longer construct an argument with a raw string that doesn't contain the quotes; achieved 100% test coverage
git-svn-id: file:///srv/devel/repo-conversion/nusu@129 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-14 20:25:56 +00:00 |
|
Markus Ewald
|
6d2b39255f
|
Updated code to match current coding guidelines
git-svn-id: file:///srv/devel/repo-conversion/nusu@128 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-08 19:28:31 +00:00 |
|
Markus Ewald
|
23c1b1587a
|
Minor code reformat in command line parser; fixed Copy & Paste error in comments for exception unit test classes
git-svn-id: file:///srv/devel/repo-conversion/nusu@127 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-03 19:19:10 +00:00 |
|
Markus Ewald
|
46ec063abd
|
Added missing comment
git-svn-id: file:///srv/devel/repo-conversion/nusu@126 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-01 21:19:09 +00:00 |
|
Markus Ewald
|
dcf47768e5
|
Fixed a bug in the Transaction class that would skip on the AsyncEnded subscriber callbacks if a subscriber unsubscribed during the callback (either in the callback thread or asynchronously at the same time); wrote a unit test that highlights the bug
git-svn-id: file:///srv/devel/repo-conversion/nusu@125 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-04-01 20:32:22 +00:00 |
|
Markus Ewald
|
96061c688c
|
Added another unit test for the transaction group
git-svn-id: file:///srv/devel/repo-conversion/nusu@124 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-03-30 20:08:12 +00:00 |
|
Markus Ewald
|
889a47db6d
|
Added new interface IObservableCollection which can be used to find out whether a collection can be observed, even if it is only published by its generic .NET interface
git-svn-id: file:///srv/devel/repo-conversion/nusu@123 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-03-19 19:34:11 +00:00 |
|
Markus Ewald
|
743fc9cc09
|
Fixed some typos in the comments; added weak collection which stores objects by weak reference; moved UNITTEST #if to the top of the files for some unit tests
git-svn-id: file:///srv/devel/repo-conversion/nusu@122 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-03-11 19:20:28 +00:00 |
|
Markus Ewald
|
190e32ee56
|
Fixed a serious bug in the TransactionGroup which would cause the TransactionGroup to crash when all the transactions it gets passed in the constructor were in the ended state; fixed another serious bug that would occur when transactions reached the ended state during the constructor; wrote unit tests that reproduced those bugs
git-svn-id: file:///srv/devel/repo-conversion/nusu@121 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-02-26 19:47:41 +00:00 |
|
Markus Ewald
|
a2f53639d4
|
Removed redundant 'System.' in front of an Attribute class
git-svn-id: file:///srv/devel/repo-conversion/nusu@120 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-02-18 19:21:44 +00:00 |
|
Markus Ewald
|
a3de5b041c
|
Fixed some minor deviations from the coding conventions in the ProgressTracker class
git-svn-id: file:///srv/devel/repo-conversion/nusu@119 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-02-01 20:54:01 +00:00 |
|
Markus Ewald
|
1f1faac82a
|
Fixed a typo
git-svn-id: file:///srv/devel/repo-conversion/nusu@118 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-26 20:06:41 +00:00 |
|
Markus Ewald
|
b90ff1c78b
|
Added new class ObservableDictionary to the collection class library; 100% test coverage for the new ObservableDictionary class; fixed some minor issues with the code of ObservableCollection and ReadOnlyDictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@117 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-26 20:05:32 +00:00 |
|
Markus Ewald
|
2ab3b22c60
|
Fixed failing unit tests on Mono; used CollectionAssert.AreEquivalent() instead of CollectionAssert.AreEqual() since the order of items in a Dictionary is unspecified and Mono makes use of this allowance; fixed one serious bug that should have been caught by the .NET 2.0 unit tests: the enumeration of ReadOnlyDictionary via ICollection should return DictionaryEntry[] and not KeyValuePair<>[]
git-svn-id: file:///srv/devel/repo-conversion/nusu@115 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-13 20:00:13 +00:00 |
|
Markus Ewald
|
8dc15e8515
|
Upgraded Nuclex.Support to NUnit 2.5 Beta 1
git-svn-id: file:///srv/devel/repo-conversion/nusu@114 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-13 19:30:33 +00:00 |
|
Markus Ewald
|
0a483b4d44
|
Made Nuclex.Support compileable on the XBox 360; added new XNA 3.0 project to compile Nuclex.Support on the XBox 360; added my own AssemblyLoadEventArgs implementation since the XBox 360 XNA framework doesn't provide it; other minor fixes so Nuclex.Support can cope with the XBox 360 XNA framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@113 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-13 18:50:52 +00:00 |
|
Markus Ewald
|
8f6616f79a
|
AssertHelperTest.TestAlmostEqualWithDoubles() was testing the same code twice - fixed; made use of Assert.AreSame() instead of manually calling object.ReferenceEquals() in the SharedTest class; fixed documentation referring to the custom WeakReference as the System.WeakReference class
git-svn-id: file:///srv/devel/repo-conversion/nusu@112 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-08 20:14:14 +00:00 |
|
Markus Ewald
|
6eb49ed0d2
|
Updated copyright statement to include the year 2009 =); finally decided to make some of the NUnit assert helper methods public and include it in Nuclex.Support (yes, that means those methods won't be there in a build with unit testing disabled, a compromise accepted now)
git-svn-id: file:///srv/devel/repo-conversion/nusu@111 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2009-01-07 19:05:29 +00:00 |
|
Markus Ewald
|
14274a9460
|
Added some more unit tests to verify that NextPowerOfTwo() selects the next power of two when the argument is just one increment above an even power of two
git-svn-id: file:///srv/devel/repo-conversion/nusu@110 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2008-12-14 18:08:44 +00:00 |
|
Markus Ewald
|
3731fc42ae
|
Documented what an 'ulp' is supposed to be in the FloatHelper class :)
git-svn-id: file:///srv/devel/repo-conversion/nusu@109 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2008-12-14 18:05:14 +00:00 |
|
Markus Ewald
|
8923f2512a
|
Disabled the command line parser for now to prevent anyone from using the broken code
git-svn-id: file:///srv/devel/repo-conversion/nusu@108 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2008-12-11 20:19:29 +00:00 |
|
Markus Ewald
|
9c40abe10a
|
Completed the command line parser, then decided while adding result validation to the unit tests that the parser should be greedy (and accept option initiators within option names) - I don't like the way the parser code turned out anyway, so I'll rewrite soon
git-svn-id: file:///srv/devel/repo-conversion/nusu@107 d2e56fa2-650e-0410-a79f-9358c0239efd
|
2008-12-11 20:15:21 +00:00 |
|