From 1f8aba455fe45f274320352ce627dd7ba02e5e00 Mon Sep 17 00:00:00 2001 From: stakx Date: Sun, 22 Jul 2018 00:58:08 +0200 Subject: [PATCH 1/3] Introduce `src/` and `tests/` folders --- Moq.nuspec | 12 ++++++------ Moq.sln | 6 +++--- build.proj | 14 +++++++------- {Source => src/Moq}/AsInterface.cs | 0 {Source => src/Moq}/Capture.cs | 0 {Source => src/Moq}/CaptureMatch.cs | 0 {Source => src/Moq}/Condition.cs | 0 {Source => src/Moq}/ConditionalContext.cs | 0 {Source => src/Moq}/DefaultValue.cs | 0 {Source => src/Moq}/DefaultValueProvider.cs | 0 {Source => src/Moq}/EmptyDefaultValueProvider.cs | 0 {Source => src/Moq}/Evaluator.cs | 0 {Source => src/Moq}/EventHandlerCollection.cs | 0 {Source => src/Moq}/ExpressionComparer.cs | 0 {Source => src/Moq}/ExpressionExtensions.cs | 0 {Source => src/Moq}/ExpressionStringBuilder.cs | 0 {Source => src/Moq}/Extensions.cs | 0 {Source => src/Moq}/FluentMockContext.cs | 0 {Source => src/Moq}/Guard.cs | 0 {Source => src/Moq}/IInvocation.cs | 0 {Source => src/Moq}/IInvocationList.cs | 0 {Source => src/Moq}/IMatcher.cs | 0 {Source => src/Moq}/IMock.cs | 0 {Source => src/Moq}/IMocked.cs | 0 .../Moq}/Includes/GenericTypeParameters.tt | 0 {Source => src/Moq}/Interception/IInterceptor.cs | 0 .../Moq}/Interception/InterceptionAspect.cs | 0 .../Moq}/Interception/InterceptionAspects.cs | 0 {Source => src/Moq}/Interception/Mock.cs | 0 {Source => src/Moq}/Invocation.cs | 0 {Source => src/Moq}/InvocationCollection.cs | 0 {Source => src/Moq}/It.cs | 0 {Source => src/Moq}/It.xdoc | 0 .../Moq}/Language/Flow/ICallbackResult.cs | 0 .../Moq}/Language/Flow/IReturnsResult.cs | 0 .../Moq}/Language/Flow/IReturnsThrows.cs | 0 {Source => src/Moq}/Language/Flow/ISetup.cs | 0 {Source => src/Moq}/Language/Flow/IThrowsResult.cs | 0 .../Moq}/Language/Flow/SetupSequencePhrase.cs | 0 .../Moq}/Language/ICallback.Generated.cs | 0 {Source => src/Moq}/Language/ICallback.cs | 0 {Source => src/Moq}/Language/ICallback.tt | 0 {Source => src/Moq}/Language/ICallbackGetter.cs | 0 {Source => src/Moq}/Language/ICallbackSetter.cs | 0 {Source => src/Moq}/Language/IRaise.Generated.cs | 0 {Source => src/Moq}/Language/IRaise.cs | 0 {Source => src/Moq}/Language/IRaise.tt | 0 {Source => src/Moq}/Language/IReturns.Generated.cs | 0 {Source => src/Moq}/Language/IReturns.cs | 0 {Source => src/Moq}/Language/IReturns.tt | 0 {Source => src/Moq}/Language/IReturnsGetter.cs | 0 .../Moq}/Language/ISetupConditionResult.cs | 0 .../Moq}/Language/ISetupSequentialAction.cs | 0 .../Moq}/Language/ISetupSequentialResult.cs | 0 {Source => src/Moq}/Language/IThrows.cs | 0 {Source => src/Moq}/Language/IVerifies.cs | 0 {Source => src/Moq}/Linq/FluentMockVisitor.cs | 0 {Source => src/Moq}/Linq/Mock.cs | 0 {Source => src/Moq}/Linq/MockQuery.cs | 0 {Source => src/Moq}/Linq/MockRepository.cs | 0 {Source => src/Moq}/Linq/MockSetupsBuilder.cs | 0 {Source => src/Moq}/Linq/Mocks.cs | 0 .../Moq}/LookupOrFallbackDefaultValueProvider.cs | 0 {Source => src/Moq}/Match.cs | 0 {Source => src/Moq}/Match.xdoc | 0 {Source => src/Moq}/MatchExpression.cs | 0 {Source => src/Moq}/MatcherFactory.cs | 0 {Source => src/Moq}/Matchers/AnyMatcher.cs | 0 {Source => src/Moq}/Matchers/ConstantMatcher.cs | 0 {Source => src/Moq}/Matchers/ExpressionMatcher.cs | 0 {Source => src/Moq}/Matchers/LazyEvalMatcher.cs | 0 .../Moq}/Matchers/MatcherAttributeMatcher.cs | 0 {Source => src/Moq}/Matchers/ParamArrayMatcher.cs | 0 {Source => src/Moq}/Matchers/RefMatcher.cs | 0 {Source => src/Moq}/MethodCall.Generated.cs | 0 {Source => src/Moq}/MethodCall.cs | 0 {Source => src/Moq}/MethodCall.tt | 0 {Source => src/Moq}/MethodCallReturn.Generated.cs | 0 {Source => src/Moq}/MethodCallReturn.cs | 0 {Source => src/Moq}/MethodCallReturn.tt | 0 {Source => src/Moq}/Mock.Generic.cs | 0 {Source => src/Moq}/Mock.Generic.xdoc | 0 {Source => src/Moq}/Mock.cs | 0 {Source => src/Moq}/Mock.xdoc | 0 {Source => src/Moq}/MockBehavior.cs | 0 {Source => src/Moq}/MockDefaultValueProvider.cs | 0 {Source => src/Moq}/MockException.cs | 0 {Source => src/Moq}/MockExceptionReason.cs | 0 {Source => src/Moq}/MockExtensions.cs | 0 {Source => src/Moq}/MockRepository.cs | 0 {Source => src/Moq}/MockSequence.cs | 0 {Source => src/Moq}/MockWithWrappedMockObject.cs | 0 {Source => src/Moq}/Moq.csproj | 2 +- {Source => src/Moq}/Obsolete/IOccurrence.cs | 0 {Source => src/Moq}/Obsolete/MatcherAttribute.cs | 0 .../Moq}/Obsolete/Mock.Generic.Legacy.cs | 0 {Source => src/Moq}/Obsolete/Mock.Legacy.cs | 0 {Source => src/Moq}/Obsolete/MockExtensions.cs | 0 {Source => src/Moq}/Obsolete/MockFactory.cs | 0 .../Moq}/Obsolete/ObsoleteMockExtensions.cs | 0 {Source => src/Moq}/Obsolete/SequenceExtensions.cs | 0 {Source => src/Moq}/PexProtector.cs | 0 {Source => src/Moq}/Properties/AssemblyInfo.cs | 0 .../Moq}/Properties/GlobalSuppressions.cs | 0 .../Moq}/Properties/Resources.Designer.cs | 0 {Source => src/Moq}/Properties/Resources.resx | 0 {Source => src/Moq}/PropertyGetterMethodCall.cs | 0 {Source => src/Moq}/PropertySetterMethodCall.cs | 0 {Source => src/Moq}/Protected/IProtectedAsMock.cs | 0 {Source => src/Moq}/Protected/IProtectedMock.cs | 0 {Source => src/Moq}/Protected/ItExpr.cs | 0 {Source => src/Moq}/Protected/ProtectedAsMock.cs | 0 .../Moq}/Protected/ProtectedExtension.cs | 0 {Source => src/Moq}/Protected/ProtectedMock.cs | 0 .../Moq}/ProxyFactories/CastleProxyFactory.cs | 0 .../Moq}/ProxyFactories/InterfaceProxy.cs | 0 {Source => src/Moq}/ProxyFactories/ProxyFactory.cs | 0 {Source => src/Moq}/Range.cs | 0 {Source => src/Moq}/ReturnsExtensions.Generated.cs | 0 {Source => src/Moq}/ReturnsExtensions.cs | 0 {Source => src/Moq}/ReturnsExtensions.tt | 0 {Source => src/Moq}/SequenceExtensions.cs | 0 {Source => src/Moq}/SequenceMethodCall.cs | 0 {Source => src/Moq}/SetterMethodCall.cs | 0 {Source => src/Moq}/SetupCollection.cs | 0 {Source => src/Moq}/StringBuilderExtensions.cs | 0 {Source => src/Moq}/Switches.cs | 0 {Source => src/Moq}/Times.cs | 0 {Source => src/Moq}/Times.xdoc | 0 .../Moq.Tests.VisualBasic}/IssueReports.vb | 0 .../Moq.Tests.VisualBasic.vbproj | 6 +++--- .../Moq.Tests}/AsInterfaceFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/CallbacksFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/CaptureFixture.cs | 0 .../Moq.Tests}/CaptureMatchFixture.cs | 0 .../Moq.Tests}/ConditionalSetupFixture.cs | 0 .../CustomDefaultValueProviderFixture.cs | 0 .../Moq.Tests}/CustomMatcherFixture.cs | 0 .../Moq.Tests}/DefaultValueProviderFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/Demo.cs | 0 .../Moq.Tests}/EmptyDefaultValueProviderFixture.cs | 0 .../Moq.Tests}/ExpressionExtensionsFixture.cs | 0 .../Moq.Tests}/ExtensibilityFixture.cs | 0 .../Moq.Tests}/ExtensionsFixture.cs | 0 .../GeneratedReturnsExtensionsFixture.cs | 0 .../Moq.Tests}/InvocationsFixture.cs | 0 .../Moq.Tests}/Linq/MockRepositoryQuerying.cs | 0 .../Moq.Tests}/Linq/QueryableMocksFixture.cs | 0 .../Moq.Tests}/Linq/SupportedQuerying.cs | 0 .../Moq.Tests}/Linq/UnsupportedQuerying.cs | 0 .../LookupOrFallbackDefaultValueProviderFixture.cs | 0 .../Moq.Tests}/MatcherAttributeFixture.cs | 0 .../Moq.Tests}/Matchers/AnyMatcherFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/MatchersFixture.cs | 0 .../Moq.Tests}/MockBehaviorFixture.cs | 0 .../Moq.Tests}/MockDefaultValueProviderFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/MockFixture.cs | 0 .../Moq.Tests}/MockRepositoryFixture.cs | 0 .../Moq.Tests}/MockSequenceFixture.cs | 0 .../Moq.Tests}/MockedDelegatesFixture.cs | 0 .../Moq.Tests}/MockedEventsFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/MockedFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/Moq.Tests.csproj | 4 ++-- .../Moq.Tests}/OccurrenceFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/OutRefFixture.cs | 0 .../Moq.Tests}/Pex/Moq.UnitTests.Pex.csproj | 2 +- .../Moq.Tests}/Pex/Moq.UnitTests.Pex.sln | 2 +- .../Moq.Tests}/Pex/ShouldExpectCallReturn.cs | 0 .../Moq.Tests}/Pex/ShouldExpectCallWithArgument.cs | 0 .../ShouldExpectCallWithReferenceLazyEvaluate.cs | 0 .../Pex/ShouldExpectReturnPropertyValue.cs | 0 .../Moq.Tests}/Pex/ShouldMatchPredicateArgument.cs | 0 .../Moq.Tests}/Properties/AssemblyInfo.cs | 0 .../Moq.Tests}/PropertiesFixture.cs | 0 .../Moq.Tests}/ProtectedAsMockFixture.cs | 0 .../Moq.Tests}/ProtectedMockFixture.cs | 0 .../Moq.Tests}/RecursiveMocksFixture.cs | 0 .../Moq.Tests}/Regressions/FluentMockIssues.cs | 0 .../Moq.Tests}/Regressions/IssueReportsFixture.cs | 0 .../Moq.Tests}/Regressions/StreamFixture.cs | 0 .../Moq.Tests}/ReturnsExtensionsFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/ReturnsFixture.cs | 0 .../Moq.Tests}/ReturnsValidationFixture.cs | 0 .../Moq.Tests}/SequenceExtensionsFixture.cs | 0 .../SequentialActionExtensionsFixture.cs | 0 .../Moq.Tests}/StubExtensionsFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/TimesFixture.cs | 0 {Moq.Tests => tests/Moq.Tests}/VerifyFixture.cs | 0 188 files changed, 24 insertions(+), 24 deletions(-) rename {Source => src/Moq}/AsInterface.cs (100%) rename {Source => src/Moq}/Capture.cs (100%) rename {Source => src/Moq}/CaptureMatch.cs (100%) rename {Source => src/Moq}/Condition.cs (100%) rename {Source => src/Moq}/ConditionalContext.cs (100%) rename {Source => src/Moq}/DefaultValue.cs (100%) rename {Source => src/Moq}/DefaultValueProvider.cs (100%) rename {Source => src/Moq}/EmptyDefaultValueProvider.cs (100%) rename {Source => src/Moq}/Evaluator.cs (100%) rename {Source => src/Moq}/EventHandlerCollection.cs (100%) rename {Source => src/Moq}/ExpressionComparer.cs (100%) rename {Source => src/Moq}/ExpressionExtensions.cs (100%) rename {Source => src/Moq}/ExpressionStringBuilder.cs (100%) rename {Source => src/Moq}/Extensions.cs (100%) rename {Source => src/Moq}/FluentMockContext.cs (100%) rename {Source => src/Moq}/Guard.cs (100%) rename {Source => src/Moq}/IInvocation.cs (100%) rename {Source => src/Moq}/IInvocationList.cs (100%) rename {Source => src/Moq}/IMatcher.cs (100%) rename {Source => src/Moq}/IMock.cs (100%) rename {Source => src/Moq}/IMocked.cs (100%) rename {Source => src/Moq}/Includes/GenericTypeParameters.tt (100%) rename {Source => src/Moq}/Interception/IInterceptor.cs (100%) rename {Source => src/Moq}/Interception/InterceptionAspect.cs (100%) rename {Source => src/Moq}/Interception/InterceptionAspects.cs (100%) rename {Source => src/Moq}/Interception/Mock.cs (100%) rename {Source => src/Moq}/Invocation.cs (100%) rename {Source => src/Moq}/InvocationCollection.cs (100%) rename {Source => src/Moq}/It.cs (100%) rename {Source => src/Moq}/It.xdoc (100%) rename {Source => src/Moq}/Language/Flow/ICallbackResult.cs (100%) rename {Source => src/Moq}/Language/Flow/IReturnsResult.cs (100%) rename {Source => src/Moq}/Language/Flow/IReturnsThrows.cs (100%) rename {Source => src/Moq}/Language/Flow/ISetup.cs (100%) rename {Source => src/Moq}/Language/Flow/IThrowsResult.cs (100%) rename {Source => src/Moq}/Language/Flow/SetupSequencePhrase.cs (100%) rename {Source => src/Moq}/Language/ICallback.Generated.cs (100%) rename {Source => src/Moq}/Language/ICallback.cs (100%) rename {Source => src/Moq}/Language/ICallback.tt (100%) rename {Source => src/Moq}/Language/ICallbackGetter.cs (100%) rename {Source => src/Moq}/Language/ICallbackSetter.cs (100%) rename {Source => src/Moq}/Language/IRaise.Generated.cs (100%) rename {Source => src/Moq}/Language/IRaise.cs (100%) rename {Source => src/Moq}/Language/IRaise.tt (100%) rename {Source => src/Moq}/Language/IReturns.Generated.cs (100%) rename {Source => src/Moq}/Language/IReturns.cs (100%) rename {Source => src/Moq}/Language/IReturns.tt (100%) rename {Source => src/Moq}/Language/IReturnsGetter.cs (100%) rename {Source => src/Moq}/Language/ISetupConditionResult.cs (100%) rename {Source => src/Moq}/Language/ISetupSequentialAction.cs (100%) rename {Source => src/Moq}/Language/ISetupSequentialResult.cs (100%) rename {Source => src/Moq}/Language/IThrows.cs (100%) rename {Source => src/Moq}/Language/IVerifies.cs (100%) rename {Source => src/Moq}/Linq/FluentMockVisitor.cs (100%) rename {Source => src/Moq}/Linq/Mock.cs (100%) rename {Source => src/Moq}/Linq/MockQuery.cs (100%) rename {Source => src/Moq}/Linq/MockRepository.cs (100%) rename {Source => src/Moq}/Linq/MockSetupsBuilder.cs (100%) rename {Source => src/Moq}/Linq/Mocks.cs (100%) rename {Source => src/Moq}/LookupOrFallbackDefaultValueProvider.cs (100%) rename {Source => src/Moq}/Match.cs (100%) rename {Source => src/Moq}/Match.xdoc (100%) rename {Source => src/Moq}/MatchExpression.cs (100%) rename {Source => src/Moq}/MatcherFactory.cs (100%) rename {Source => src/Moq}/Matchers/AnyMatcher.cs (100%) rename {Source => src/Moq}/Matchers/ConstantMatcher.cs (100%) rename {Source => src/Moq}/Matchers/ExpressionMatcher.cs (100%) rename {Source => src/Moq}/Matchers/LazyEvalMatcher.cs (100%) rename {Source => src/Moq}/Matchers/MatcherAttributeMatcher.cs (100%) rename {Source => src/Moq}/Matchers/ParamArrayMatcher.cs (100%) rename {Source => src/Moq}/Matchers/RefMatcher.cs (100%) rename {Source => src/Moq}/MethodCall.Generated.cs (100%) rename {Source => src/Moq}/MethodCall.cs (100%) rename {Source => src/Moq}/MethodCall.tt (100%) rename {Source => src/Moq}/MethodCallReturn.Generated.cs (100%) rename {Source => src/Moq}/MethodCallReturn.cs (100%) rename {Source => src/Moq}/MethodCallReturn.tt (100%) rename {Source => src/Moq}/Mock.Generic.cs (100%) rename {Source => src/Moq}/Mock.Generic.xdoc (100%) rename {Source => src/Moq}/Mock.cs (100%) rename {Source => src/Moq}/Mock.xdoc (100%) rename {Source => src/Moq}/MockBehavior.cs (100%) rename {Source => src/Moq}/MockDefaultValueProvider.cs (100%) rename {Source => src/Moq}/MockException.cs (100%) rename {Source => src/Moq}/MockExceptionReason.cs (100%) rename {Source => src/Moq}/MockExtensions.cs (100%) rename {Source => src/Moq}/MockRepository.cs (100%) rename {Source => src/Moq}/MockSequence.cs (100%) rename {Source => src/Moq}/MockWithWrappedMockObject.cs (100%) rename {Source => src/Moq}/Moq.csproj (98%) rename {Source => src/Moq}/Obsolete/IOccurrence.cs (100%) rename {Source => src/Moq}/Obsolete/MatcherAttribute.cs (100%) rename {Source => src/Moq}/Obsolete/Mock.Generic.Legacy.cs (100%) rename {Source => src/Moq}/Obsolete/Mock.Legacy.cs (100%) rename {Source => src/Moq}/Obsolete/MockExtensions.cs (100%) rename {Source => src/Moq}/Obsolete/MockFactory.cs (100%) rename {Source => src/Moq}/Obsolete/ObsoleteMockExtensions.cs (100%) rename {Source => src/Moq}/Obsolete/SequenceExtensions.cs (100%) rename {Source => src/Moq}/PexProtector.cs (100%) rename {Source => src/Moq}/Properties/AssemblyInfo.cs (100%) rename {Source => src/Moq}/Properties/GlobalSuppressions.cs (100%) rename {Source => src/Moq}/Properties/Resources.Designer.cs (100%) rename {Source => src/Moq}/Properties/Resources.resx (100%) rename {Source => src/Moq}/PropertyGetterMethodCall.cs (100%) rename {Source => src/Moq}/PropertySetterMethodCall.cs (100%) rename {Source => src/Moq}/Protected/IProtectedAsMock.cs (100%) rename {Source => src/Moq}/Protected/IProtectedMock.cs (100%) rename {Source => src/Moq}/Protected/ItExpr.cs (100%) rename {Source => src/Moq}/Protected/ProtectedAsMock.cs (100%) rename {Source => src/Moq}/Protected/ProtectedExtension.cs (100%) rename {Source => src/Moq}/Protected/ProtectedMock.cs (100%) rename {Source => src/Moq}/ProxyFactories/CastleProxyFactory.cs (100%) rename {Source => src/Moq}/ProxyFactories/InterfaceProxy.cs (100%) rename {Source => src/Moq}/ProxyFactories/ProxyFactory.cs (100%) rename {Source => src/Moq}/Range.cs (100%) rename {Source => src/Moq}/ReturnsExtensions.Generated.cs (100%) rename {Source => src/Moq}/ReturnsExtensions.cs (100%) rename {Source => src/Moq}/ReturnsExtensions.tt (100%) rename {Source => src/Moq}/SequenceExtensions.cs (100%) rename {Source => src/Moq}/SequenceMethodCall.cs (100%) rename {Source => src/Moq}/SetterMethodCall.cs (100%) rename {Source => src/Moq}/SetupCollection.cs (100%) rename {Source => src/Moq}/StringBuilderExtensions.cs (100%) rename {Source => src/Moq}/Switches.cs (100%) rename {Source => src/Moq}/Times.cs (100%) rename {Source => src/Moq}/Times.xdoc (100%) rename {Moq.Tests.VisualBasic => tests/Moq.Tests.VisualBasic}/IssueReports.vb (100%) rename {Moq.Tests.VisualBasic => tests/Moq.Tests.VisualBasic}/Moq.Tests.VisualBasic.vbproj (79%) rename {Moq.Tests => tests/Moq.Tests}/AsInterfaceFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/CallbacksFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/CaptureFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/CaptureMatchFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ConditionalSetupFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/CustomDefaultValueProviderFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/CustomMatcherFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/DefaultValueProviderFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Demo.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/EmptyDefaultValueProviderFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ExpressionExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ExtensibilityFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/GeneratedReturnsExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/InvocationsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Linq/MockRepositoryQuerying.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Linq/QueryableMocksFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Linq/SupportedQuerying.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Linq/UnsupportedQuerying.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/LookupOrFallbackDefaultValueProviderFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MatcherAttributeFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Matchers/AnyMatcherFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MatchersFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockBehaviorFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockDefaultValueProviderFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockRepositoryFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockSequenceFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockedDelegatesFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockedEventsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/MockedFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Moq.Tests.csproj (94%) rename {Moq.Tests => tests/Moq.Tests}/OccurrenceFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/OutRefFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Pex/Moq.UnitTests.Pex.csproj (98%) rename {Moq.Tests => tests/Moq.Tests}/Pex/Moq.UnitTests.Pex.sln (96%) rename {Moq.Tests => tests/Moq.Tests}/Pex/ShouldExpectCallReturn.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Pex/ShouldExpectCallWithArgument.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Pex/ShouldExpectReturnPropertyValue.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Pex/ShouldMatchPredicateArgument.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Properties/AssemblyInfo.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/PropertiesFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ProtectedAsMockFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ProtectedMockFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/RecursiveMocksFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Regressions/FluentMockIssues.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Regressions/IssueReportsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/Regressions/StreamFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ReturnsExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ReturnsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/ReturnsValidationFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/SequenceExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/SequentialActionExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/StubExtensionsFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/TimesFixture.cs (100%) rename {Moq.Tests => tests/Moq.Tests}/VerifyFixture.cs (100%) diff --git a/Moq.nuspec b/Moq.nuspec index a6b8d3625..bca908ce3 100644 --- a/Moq.nuspec +++ b/Moq.nuspec @@ -30,11 +30,11 @@ - - - - - - + + + + + + diff --git a/Moq.sln b/Moq.sln index c1361f767..23d4ba3ea 100644 --- a/Moq.sln +++ b/Moq.sln @@ -14,11 +14,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.md = README.md EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq", "Source\Moq.csproj", "{1C91AC30-5977-4BE5-BA67-8EB186C03514}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq", "src\Moq\Moq.csproj", "{1C91AC30-5977-4BE5-BA67-8EB186C03514}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Tests", "Moq.Tests\Moq.Tests.csproj", "{81BBC911-4916-4E10-A955-752AE47CB2B9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Tests", "tests\Moq.Tests\Moq.Tests.csproj", "{81BBC911-4916-4E10-A955-752AE47CB2B9}" EndProject -Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Moq.Tests.VisualBasic", "Moq.Tests.VisualBasic\Moq.Tests.VisualBasic.vbproj", "{840A8B2E-3D4B-4521-A61A-0291562CDC8B}" +Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Moq.Tests.VisualBasic", "tests\Moq.Tests.VisualBasic\Moq.Tests.VisualBasic.vbproj", "{840A8B2E-3D4B-4521-A61A-0291562CDC8B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/build.proj b/build.proj index 7b833fa15..4e13cc499 100644 --- a/build.proj +++ b/build.proj @@ -15,7 +15,7 @@ - + @@ -42,12 +42,12 @@ so create it if it doesn't exist yet. --> - - @@ -74,8 +74,8 @@ diff --git a/Source/AsInterface.cs b/src/Moq/AsInterface.cs similarity index 100% rename from Source/AsInterface.cs rename to src/Moq/AsInterface.cs diff --git a/Source/Capture.cs b/src/Moq/Capture.cs similarity index 100% rename from Source/Capture.cs rename to src/Moq/Capture.cs diff --git a/Source/CaptureMatch.cs b/src/Moq/CaptureMatch.cs similarity index 100% rename from Source/CaptureMatch.cs rename to src/Moq/CaptureMatch.cs diff --git a/Source/Condition.cs b/src/Moq/Condition.cs similarity index 100% rename from Source/Condition.cs rename to src/Moq/Condition.cs diff --git a/Source/ConditionalContext.cs b/src/Moq/ConditionalContext.cs similarity index 100% rename from Source/ConditionalContext.cs rename to src/Moq/ConditionalContext.cs diff --git a/Source/DefaultValue.cs b/src/Moq/DefaultValue.cs similarity index 100% rename from Source/DefaultValue.cs rename to src/Moq/DefaultValue.cs diff --git a/Source/DefaultValueProvider.cs b/src/Moq/DefaultValueProvider.cs similarity index 100% rename from Source/DefaultValueProvider.cs rename to src/Moq/DefaultValueProvider.cs diff --git a/Source/EmptyDefaultValueProvider.cs b/src/Moq/EmptyDefaultValueProvider.cs similarity index 100% rename from Source/EmptyDefaultValueProvider.cs rename to src/Moq/EmptyDefaultValueProvider.cs diff --git a/Source/Evaluator.cs b/src/Moq/Evaluator.cs similarity index 100% rename from Source/Evaluator.cs rename to src/Moq/Evaluator.cs diff --git a/Source/EventHandlerCollection.cs b/src/Moq/EventHandlerCollection.cs similarity index 100% rename from Source/EventHandlerCollection.cs rename to src/Moq/EventHandlerCollection.cs diff --git a/Source/ExpressionComparer.cs b/src/Moq/ExpressionComparer.cs similarity index 100% rename from Source/ExpressionComparer.cs rename to src/Moq/ExpressionComparer.cs diff --git a/Source/ExpressionExtensions.cs b/src/Moq/ExpressionExtensions.cs similarity index 100% rename from Source/ExpressionExtensions.cs rename to src/Moq/ExpressionExtensions.cs diff --git a/Source/ExpressionStringBuilder.cs b/src/Moq/ExpressionStringBuilder.cs similarity index 100% rename from Source/ExpressionStringBuilder.cs rename to src/Moq/ExpressionStringBuilder.cs diff --git a/Source/Extensions.cs b/src/Moq/Extensions.cs similarity index 100% rename from Source/Extensions.cs rename to src/Moq/Extensions.cs diff --git a/Source/FluentMockContext.cs b/src/Moq/FluentMockContext.cs similarity index 100% rename from Source/FluentMockContext.cs rename to src/Moq/FluentMockContext.cs diff --git a/Source/Guard.cs b/src/Moq/Guard.cs similarity index 100% rename from Source/Guard.cs rename to src/Moq/Guard.cs diff --git a/Source/IInvocation.cs b/src/Moq/IInvocation.cs similarity index 100% rename from Source/IInvocation.cs rename to src/Moq/IInvocation.cs diff --git a/Source/IInvocationList.cs b/src/Moq/IInvocationList.cs similarity index 100% rename from Source/IInvocationList.cs rename to src/Moq/IInvocationList.cs diff --git a/Source/IMatcher.cs b/src/Moq/IMatcher.cs similarity index 100% rename from Source/IMatcher.cs rename to src/Moq/IMatcher.cs diff --git a/Source/IMock.cs b/src/Moq/IMock.cs similarity index 100% rename from Source/IMock.cs rename to src/Moq/IMock.cs diff --git a/Source/IMocked.cs b/src/Moq/IMocked.cs similarity index 100% rename from Source/IMocked.cs rename to src/Moq/IMocked.cs diff --git a/Source/Includes/GenericTypeParameters.tt b/src/Moq/Includes/GenericTypeParameters.tt similarity index 100% rename from Source/Includes/GenericTypeParameters.tt rename to src/Moq/Includes/GenericTypeParameters.tt diff --git a/Source/Interception/IInterceptor.cs b/src/Moq/Interception/IInterceptor.cs similarity index 100% rename from Source/Interception/IInterceptor.cs rename to src/Moq/Interception/IInterceptor.cs diff --git a/Source/Interception/InterceptionAspect.cs b/src/Moq/Interception/InterceptionAspect.cs similarity index 100% rename from Source/Interception/InterceptionAspect.cs rename to src/Moq/Interception/InterceptionAspect.cs diff --git a/Source/Interception/InterceptionAspects.cs b/src/Moq/Interception/InterceptionAspects.cs similarity index 100% rename from Source/Interception/InterceptionAspects.cs rename to src/Moq/Interception/InterceptionAspects.cs diff --git a/Source/Interception/Mock.cs b/src/Moq/Interception/Mock.cs similarity index 100% rename from Source/Interception/Mock.cs rename to src/Moq/Interception/Mock.cs diff --git a/Source/Invocation.cs b/src/Moq/Invocation.cs similarity index 100% rename from Source/Invocation.cs rename to src/Moq/Invocation.cs diff --git a/Source/InvocationCollection.cs b/src/Moq/InvocationCollection.cs similarity index 100% rename from Source/InvocationCollection.cs rename to src/Moq/InvocationCollection.cs diff --git a/Source/It.cs b/src/Moq/It.cs similarity index 100% rename from Source/It.cs rename to src/Moq/It.cs diff --git a/Source/It.xdoc b/src/Moq/It.xdoc similarity index 100% rename from Source/It.xdoc rename to src/Moq/It.xdoc diff --git a/Source/Language/Flow/ICallbackResult.cs b/src/Moq/Language/Flow/ICallbackResult.cs similarity index 100% rename from Source/Language/Flow/ICallbackResult.cs rename to src/Moq/Language/Flow/ICallbackResult.cs diff --git a/Source/Language/Flow/IReturnsResult.cs b/src/Moq/Language/Flow/IReturnsResult.cs similarity index 100% rename from Source/Language/Flow/IReturnsResult.cs rename to src/Moq/Language/Flow/IReturnsResult.cs diff --git a/Source/Language/Flow/IReturnsThrows.cs b/src/Moq/Language/Flow/IReturnsThrows.cs similarity index 100% rename from Source/Language/Flow/IReturnsThrows.cs rename to src/Moq/Language/Flow/IReturnsThrows.cs diff --git a/Source/Language/Flow/ISetup.cs b/src/Moq/Language/Flow/ISetup.cs similarity index 100% rename from Source/Language/Flow/ISetup.cs rename to src/Moq/Language/Flow/ISetup.cs diff --git a/Source/Language/Flow/IThrowsResult.cs b/src/Moq/Language/Flow/IThrowsResult.cs similarity index 100% rename from Source/Language/Flow/IThrowsResult.cs rename to src/Moq/Language/Flow/IThrowsResult.cs diff --git a/Source/Language/Flow/SetupSequencePhrase.cs b/src/Moq/Language/Flow/SetupSequencePhrase.cs similarity index 100% rename from Source/Language/Flow/SetupSequencePhrase.cs rename to src/Moq/Language/Flow/SetupSequencePhrase.cs diff --git a/Source/Language/ICallback.Generated.cs b/src/Moq/Language/ICallback.Generated.cs similarity index 100% rename from Source/Language/ICallback.Generated.cs rename to src/Moq/Language/ICallback.Generated.cs diff --git a/Source/Language/ICallback.cs b/src/Moq/Language/ICallback.cs similarity index 100% rename from Source/Language/ICallback.cs rename to src/Moq/Language/ICallback.cs diff --git a/Source/Language/ICallback.tt b/src/Moq/Language/ICallback.tt similarity index 100% rename from Source/Language/ICallback.tt rename to src/Moq/Language/ICallback.tt diff --git a/Source/Language/ICallbackGetter.cs b/src/Moq/Language/ICallbackGetter.cs similarity index 100% rename from Source/Language/ICallbackGetter.cs rename to src/Moq/Language/ICallbackGetter.cs diff --git a/Source/Language/ICallbackSetter.cs b/src/Moq/Language/ICallbackSetter.cs similarity index 100% rename from Source/Language/ICallbackSetter.cs rename to src/Moq/Language/ICallbackSetter.cs diff --git a/Source/Language/IRaise.Generated.cs b/src/Moq/Language/IRaise.Generated.cs similarity index 100% rename from Source/Language/IRaise.Generated.cs rename to src/Moq/Language/IRaise.Generated.cs diff --git a/Source/Language/IRaise.cs b/src/Moq/Language/IRaise.cs similarity index 100% rename from Source/Language/IRaise.cs rename to src/Moq/Language/IRaise.cs diff --git a/Source/Language/IRaise.tt b/src/Moq/Language/IRaise.tt similarity index 100% rename from Source/Language/IRaise.tt rename to src/Moq/Language/IRaise.tt diff --git a/Source/Language/IReturns.Generated.cs b/src/Moq/Language/IReturns.Generated.cs similarity index 100% rename from Source/Language/IReturns.Generated.cs rename to src/Moq/Language/IReturns.Generated.cs diff --git a/Source/Language/IReturns.cs b/src/Moq/Language/IReturns.cs similarity index 100% rename from Source/Language/IReturns.cs rename to src/Moq/Language/IReturns.cs diff --git a/Source/Language/IReturns.tt b/src/Moq/Language/IReturns.tt similarity index 100% rename from Source/Language/IReturns.tt rename to src/Moq/Language/IReturns.tt diff --git a/Source/Language/IReturnsGetter.cs b/src/Moq/Language/IReturnsGetter.cs similarity index 100% rename from Source/Language/IReturnsGetter.cs rename to src/Moq/Language/IReturnsGetter.cs diff --git a/Source/Language/ISetupConditionResult.cs b/src/Moq/Language/ISetupConditionResult.cs similarity index 100% rename from Source/Language/ISetupConditionResult.cs rename to src/Moq/Language/ISetupConditionResult.cs diff --git a/Source/Language/ISetupSequentialAction.cs b/src/Moq/Language/ISetupSequentialAction.cs similarity index 100% rename from Source/Language/ISetupSequentialAction.cs rename to src/Moq/Language/ISetupSequentialAction.cs diff --git a/Source/Language/ISetupSequentialResult.cs b/src/Moq/Language/ISetupSequentialResult.cs similarity index 100% rename from Source/Language/ISetupSequentialResult.cs rename to src/Moq/Language/ISetupSequentialResult.cs diff --git a/Source/Language/IThrows.cs b/src/Moq/Language/IThrows.cs similarity index 100% rename from Source/Language/IThrows.cs rename to src/Moq/Language/IThrows.cs diff --git a/Source/Language/IVerifies.cs b/src/Moq/Language/IVerifies.cs similarity index 100% rename from Source/Language/IVerifies.cs rename to src/Moq/Language/IVerifies.cs diff --git a/Source/Linq/FluentMockVisitor.cs b/src/Moq/Linq/FluentMockVisitor.cs similarity index 100% rename from Source/Linq/FluentMockVisitor.cs rename to src/Moq/Linq/FluentMockVisitor.cs diff --git a/Source/Linq/Mock.cs b/src/Moq/Linq/Mock.cs similarity index 100% rename from Source/Linq/Mock.cs rename to src/Moq/Linq/Mock.cs diff --git a/Source/Linq/MockQuery.cs b/src/Moq/Linq/MockQuery.cs similarity index 100% rename from Source/Linq/MockQuery.cs rename to src/Moq/Linq/MockQuery.cs diff --git a/Source/Linq/MockRepository.cs b/src/Moq/Linq/MockRepository.cs similarity index 100% rename from Source/Linq/MockRepository.cs rename to src/Moq/Linq/MockRepository.cs diff --git a/Source/Linq/MockSetupsBuilder.cs b/src/Moq/Linq/MockSetupsBuilder.cs similarity index 100% rename from Source/Linq/MockSetupsBuilder.cs rename to src/Moq/Linq/MockSetupsBuilder.cs diff --git a/Source/Linq/Mocks.cs b/src/Moq/Linq/Mocks.cs similarity index 100% rename from Source/Linq/Mocks.cs rename to src/Moq/Linq/Mocks.cs diff --git a/Source/LookupOrFallbackDefaultValueProvider.cs b/src/Moq/LookupOrFallbackDefaultValueProvider.cs similarity index 100% rename from Source/LookupOrFallbackDefaultValueProvider.cs rename to src/Moq/LookupOrFallbackDefaultValueProvider.cs diff --git a/Source/Match.cs b/src/Moq/Match.cs similarity index 100% rename from Source/Match.cs rename to src/Moq/Match.cs diff --git a/Source/Match.xdoc b/src/Moq/Match.xdoc similarity index 100% rename from Source/Match.xdoc rename to src/Moq/Match.xdoc diff --git a/Source/MatchExpression.cs b/src/Moq/MatchExpression.cs similarity index 100% rename from Source/MatchExpression.cs rename to src/Moq/MatchExpression.cs diff --git a/Source/MatcherFactory.cs b/src/Moq/MatcherFactory.cs similarity index 100% rename from Source/MatcherFactory.cs rename to src/Moq/MatcherFactory.cs diff --git a/Source/Matchers/AnyMatcher.cs b/src/Moq/Matchers/AnyMatcher.cs similarity index 100% rename from Source/Matchers/AnyMatcher.cs rename to src/Moq/Matchers/AnyMatcher.cs diff --git a/Source/Matchers/ConstantMatcher.cs b/src/Moq/Matchers/ConstantMatcher.cs similarity index 100% rename from Source/Matchers/ConstantMatcher.cs rename to src/Moq/Matchers/ConstantMatcher.cs diff --git a/Source/Matchers/ExpressionMatcher.cs b/src/Moq/Matchers/ExpressionMatcher.cs similarity index 100% rename from Source/Matchers/ExpressionMatcher.cs rename to src/Moq/Matchers/ExpressionMatcher.cs diff --git a/Source/Matchers/LazyEvalMatcher.cs b/src/Moq/Matchers/LazyEvalMatcher.cs similarity index 100% rename from Source/Matchers/LazyEvalMatcher.cs rename to src/Moq/Matchers/LazyEvalMatcher.cs diff --git a/Source/Matchers/MatcherAttributeMatcher.cs b/src/Moq/Matchers/MatcherAttributeMatcher.cs similarity index 100% rename from Source/Matchers/MatcherAttributeMatcher.cs rename to src/Moq/Matchers/MatcherAttributeMatcher.cs diff --git a/Source/Matchers/ParamArrayMatcher.cs b/src/Moq/Matchers/ParamArrayMatcher.cs similarity index 100% rename from Source/Matchers/ParamArrayMatcher.cs rename to src/Moq/Matchers/ParamArrayMatcher.cs diff --git a/Source/Matchers/RefMatcher.cs b/src/Moq/Matchers/RefMatcher.cs similarity index 100% rename from Source/Matchers/RefMatcher.cs rename to src/Moq/Matchers/RefMatcher.cs diff --git a/Source/MethodCall.Generated.cs b/src/Moq/MethodCall.Generated.cs similarity index 100% rename from Source/MethodCall.Generated.cs rename to src/Moq/MethodCall.Generated.cs diff --git a/Source/MethodCall.cs b/src/Moq/MethodCall.cs similarity index 100% rename from Source/MethodCall.cs rename to src/Moq/MethodCall.cs diff --git a/Source/MethodCall.tt b/src/Moq/MethodCall.tt similarity index 100% rename from Source/MethodCall.tt rename to src/Moq/MethodCall.tt diff --git a/Source/MethodCallReturn.Generated.cs b/src/Moq/MethodCallReturn.Generated.cs similarity index 100% rename from Source/MethodCallReturn.Generated.cs rename to src/Moq/MethodCallReturn.Generated.cs diff --git a/Source/MethodCallReturn.cs b/src/Moq/MethodCallReturn.cs similarity index 100% rename from Source/MethodCallReturn.cs rename to src/Moq/MethodCallReturn.cs diff --git a/Source/MethodCallReturn.tt b/src/Moq/MethodCallReturn.tt similarity index 100% rename from Source/MethodCallReturn.tt rename to src/Moq/MethodCallReturn.tt diff --git a/Source/Mock.Generic.cs b/src/Moq/Mock.Generic.cs similarity index 100% rename from Source/Mock.Generic.cs rename to src/Moq/Mock.Generic.cs diff --git a/Source/Mock.Generic.xdoc b/src/Moq/Mock.Generic.xdoc similarity index 100% rename from Source/Mock.Generic.xdoc rename to src/Moq/Mock.Generic.xdoc diff --git a/Source/Mock.cs b/src/Moq/Mock.cs similarity index 100% rename from Source/Mock.cs rename to src/Moq/Mock.cs diff --git a/Source/Mock.xdoc b/src/Moq/Mock.xdoc similarity index 100% rename from Source/Mock.xdoc rename to src/Moq/Mock.xdoc diff --git a/Source/MockBehavior.cs b/src/Moq/MockBehavior.cs similarity index 100% rename from Source/MockBehavior.cs rename to src/Moq/MockBehavior.cs diff --git a/Source/MockDefaultValueProvider.cs b/src/Moq/MockDefaultValueProvider.cs similarity index 100% rename from Source/MockDefaultValueProvider.cs rename to src/Moq/MockDefaultValueProvider.cs diff --git a/Source/MockException.cs b/src/Moq/MockException.cs similarity index 100% rename from Source/MockException.cs rename to src/Moq/MockException.cs diff --git a/Source/MockExceptionReason.cs b/src/Moq/MockExceptionReason.cs similarity index 100% rename from Source/MockExceptionReason.cs rename to src/Moq/MockExceptionReason.cs diff --git a/Source/MockExtensions.cs b/src/Moq/MockExtensions.cs similarity index 100% rename from Source/MockExtensions.cs rename to src/Moq/MockExtensions.cs diff --git a/Source/MockRepository.cs b/src/Moq/MockRepository.cs similarity index 100% rename from Source/MockRepository.cs rename to src/Moq/MockRepository.cs diff --git a/Source/MockSequence.cs b/src/Moq/MockSequence.cs similarity index 100% rename from Source/MockSequence.cs rename to src/Moq/MockSequence.cs diff --git a/Source/MockWithWrappedMockObject.cs b/src/Moq/MockWithWrappedMockObject.cs similarity index 100% rename from Source/MockWithWrappedMockObject.cs rename to src/Moq/MockWithWrappedMockObject.cs diff --git a/Source/Moq.csproj b/src/Moq/Moq.csproj similarity index 98% rename from Source/Moq.csproj rename to src/Moq/Moq.csproj index 514ed3806..16a8c7dd4 100644 --- a/Source/Moq.csproj +++ b/src/Moq/Moq.csproj @@ -3,7 +3,7 @@ net45;netstandard1.3 Moq - ../Moq.snk + ..\..\Moq.snk True full bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml diff --git a/Source/Obsolete/IOccurrence.cs b/src/Moq/Obsolete/IOccurrence.cs similarity index 100% rename from Source/Obsolete/IOccurrence.cs rename to src/Moq/Obsolete/IOccurrence.cs diff --git a/Source/Obsolete/MatcherAttribute.cs b/src/Moq/Obsolete/MatcherAttribute.cs similarity index 100% rename from Source/Obsolete/MatcherAttribute.cs rename to src/Moq/Obsolete/MatcherAttribute.cs diff --git a/Source/Obsolete/Mock.Generic.Legacy.cs b/src/Moq/Obsolete/Mock.Generic.Legacy.cs similarity index 100% rename from Source/Obsolete/Mock.Generic.Legacy.cs rename to src/Moq/Obsolete/Mock.Generic.Legacy.cs diff --git a/Source/Obsolete/Mock.Legacy.cs b/src/Moq/Obsolete/Mock.Legacy.cs similarity index 100% rename from Source/Obsolete/Mock.Legacy.cs rename to src/Moq/Obsolete/Mock.Legacy.cs diff --git a/Source/Obsolete/MockExtensions.cs b/src/Moq/Obsolete/MockExtensions.cs similarity index 100% rename from Source/Obsolete/MockExtensions.cs rename to src/Moq/Obsolete/MockExtensions.cs diff --git a/Source/Obsolete/MockFactory.cs b/src/Moq/Obsolete/MockFactory.cs similarity index 100% rename from Source/Obsolete/MockFactory.cs rename to src/Moq/Obsolete/MockFactory.cs diff --git a/Source/Obsolete/ObsoleteMockExtensions.cs b/src/Moq/Obsolete/ObsoleteMockExtensions.cs similarity index 100% rename from Source/Obsolete/ObsoleteMockExtensions.cs rename to src/Moq/Obsolete/ObsoleteMockExtensions.cs diff --git a/Source/Obsolete/SequenceExtensions.cs b/src/Moq/Obsolete/SequenceExtensions.cs similarity index 100% rename from Source/Obsolete/SequenceExtensions.cs rename to src/Moq/Obsolete/SequenceExtensions.cs diff --git a/Source/PexProtector.cs b/src/Moq/PexProtector.cs similarity index 100% rename from Source/PexProtector.cs rename to src/Moq/PexProtector.cs diff --git a/Source/Properties/AssemblyInfo.cs b/src/Moq/Properties/AssemblyInfo.cs similarity index 100% rename from Source/Properties/AssemblyInfo.cs rename to src/Moq/Properties/AssemblyInfo.cs diff --git a/Source/Properties/GlobalSuppressions.cs b/src/Moq/Properties/GlobalSuppressions.cs similarity index 100% rename from Source/Properties/GlobalSuppressions.cs rename to src/Moq/Properties/GlobalSuppressions.cs diff --git a/Source/Properties/Resources.Designer.cs b/src/Moq/Properties/Resources.Designer.cs similarity index 100% rename from Source/Properties/Resources.Designer.cs rename to src/Moq/Properties/Resources.Designer.cs diff --git a/Source/Properties/Resources.resx b/src/Moq/Properties/Resources.resx similarity index 100% rename from Source/Properties/Resources.resx rename to src/Moq/Properties/Resources.resx diff --git a/Source/PropertyGetterMethodCall.cs b/src/Moq/PropertyGetterMethodCall.cs similarity index 100% rename from Source/PropertyGetterMethodCall.cs rename to src/Moq/PropertyGetterMethodCall.cs diff --git a/Source/PropertySetterMethodCall.cs b/src/Moq/PropertySetterMethodCall.cs similarity index 100% rename from Source/PropertySetterMethodCall.cs rename to src/Moq/PropertySetterMethodCall.cs diff --git a/Source/Protected/IProtectedAsMock.cs b/src/Moq/Protected/IProtectedAsMock.cs similarity index 100% rename from Source/Protected/IProtectedAsMock.cs rename to src/Moq/Protected/IProtectedAsMock.cs diff --git a/Source/Protected/IProtectedMock.cs b/src/Moq/Protected/IProtectedMock.cs similarity index 100% rename from Source/Protected/IProtectedMock.cs rename to src/Moq/Protected/IProtectedMock.cs diff --git a/Source/Protected/ItExpr.cs b/src/Moq/Protected/ItExpr.cs similarity index 100% rename from Source/Protected/ItExpr.cs rename to src/Moq/Protected/ItExpr.cs diff --git a/Source/Protected/ProtectedAsMock.cs b/src/Moq/Protected/ProtectedAsMock.cs similarity index 100% rename from Source/Protected/ProtectedAsMock.cs rename to src/Moq/Protected/ProtectedAsMock.cs diff --git a/Source/Protected/ProtectedExtension.cs b/src/Moq/Protected/ProtectedExtension.cs similarity index 100% rename from Source/Protected/ProtectedExtension.cs rename to src/Moq/Protected/ProtectedExtension.cs diff --git a/Source/Protected/ProtectedMock.cs b/src/Moq/Protected/ProtectedMock.cs similarity index 100% rename from Source/Protected/ProtectedMock.cs rename to src/Moq/Protected/ProtectedMock.cs diff --git a/Source/ProxyFactories/CastleProxyFactory.cs b/src/Moq/ProxyFactories/CastleProxyFactory.cs similarity index 100% rename from Source/ProxyFactories/CastleProxyFactory.cs rename to src/Moq/ProxyFactories/CastleProxyFactory.cs diff --git a/Source/ProxyFactories/InterfaceProxy.cs b/src/Moq/ProxyFactories/InterfaceProxy.cs similarity index 100% rename from Source/ProxyFactories/InterfaceProxy.cs rename to src/Moq/ProxyFactories/InterfaceProxy.cs diff --git a/Source/ProxyFactories/ProxyFactory.cs b/src/Moq/ProxyFactories/ProxyFactory.cs similarity index 100% rename from Source/ProxyFactories/ProxyFactory.cs rename to src/Moq/ProxyFactories/ProxyFactory.cs diff --git a/Source/Range.cs b/src/Moq/Range.cs similarity index 100% rename from Source/Range.cs rename to src/Moq/Range.cs diff --git a/Source/ReturnsExtensions.Generated.cs b/src/Moq/ReturnsExtensions.Generated.cs similarity index 100% rename from Source/ReturnsExtensions.Generated.cs rename to src/Moq/ReturnsExtensions.Generated.cs diff --git a/Source/ReturnsExtensions.cs b/src/Moq/ReturnsExtensions.cs similarity index 100% rename from Source/ReturnsExtensions.cs rename to src/Moq/ReturnsExtensions.cs diff --git a/Source/ReturnsExtensions.tt b/src/Moq/ReturnsExtensions.tt similarity index 100% rename from Source/ReturnsExtensions.tt rename to src/Moq/ReturnsExtensions.tt diff --git a/Source/SequenceExtensions.cs b/src/Moq/SequenceExtensions.cs similarity index 100% rename from Source/SequenceExtensions.cs rename to src/Moq/SequenceExtensions.cs diff --git a/Source/SequenceMethodCall.cs b/src/Moq/SequenceMethodCall.cs similarity index 100% rename from Source/SequenceMethodCall.cs rename to src/Moq/SequenceMethodCall.cs diff --git a/Source/SetterMethodCall.cs b/src/Moq/SetterMethodCall.cs similarity index 100% rename from Source/SetterMethodCall.cs rename to src/Moq/SetterMethodCall.cs diff --git a/Source/SetupCollection.cs b/src/Moq/SetupCollection.cs similarity index 100% rename from Source/SetupCollection.cs rename to src/Moq/SetupCollection.cs diff --git a/Source/StringBuilderExtensions.cs b/src/Moq/StringBuilderExtensions.cs similarity index 100% rename from Source/StringBuilderExtensions.cs rename to src/Moq/StringBuilderExtensions.cs diff --git a/Source/Switches.cs b/src/Moq/Switches.cs similarity index 100% rename from Source/Switches.cs rename to src/Moq/Switches.cs diff --git a/Source/Times.cs b/src/Moq/Times.cs similarity index 100% rename from Source/Times.cs rename to src/Moq/Times.cs diff --git a/Source/Times.xdoc b/src/Moq/Times.xdoc similarity index 100% rename from Source/Times.xdoc rename to src/Moq/Times.xdoc diff --git a/Moq.Tests.VisualBasic/IssueReports.vb b/tests/Moq.Tests.VisualBasic/IssueReports.vb similarity index 100% rename from Moq.Tests.VisualBasic/IssueReports.vb rename to tests/Moq.Tests.VisualBasic/IssueReports.vb diff --git a/Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj b/tests/Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj similarity index 79% rename from Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj rename to tests/Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj index e3d455a46..ad409dc13 100644 --- a/Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj +++ b/tests/Moq.Tests.VisualBasic/Moq.Tests.VisualBasic.vbproj @@ -1,8 +1,8 @@ - + net46;netcoreapp2.0 - ../Moq.snk + ..\..\Moq.snk True full @@ -19,7 +19,7 @@ - + diff --git a/Moq.Tests/AsInterfaceFixture.cs b/tests/Moq.Tests/AsInterfaceFixture.cs similarity index 100% rename from Moq.Tests/AsInterfaceFixture.cs rename to tests/Moq.Tests/AsInterfaceFixture.cs diff --git a/Moq.Tests/CallbacksFixture.cs b/tests/Moq.Tests/CallbacksFixture.cs similarity index 100% rename from Moq.Tests/CallbacksFixture.cs rename to tests/Moq.Tests/CallbacksFixture.cs diff --git a/Moq.Tests/CaptureFixture.cs b/tests/Moq.Tests/CaptureFixture.cs similarity index 100% rename from Moq.Tests/CaptureFixture.cs rename to tests/Moq.Tests/CaptureFixture.cs diff --git a/Moq.Tests/CaptureMatchFixture.cs b/tests/Moq.Tests/CaptureMatchFixture.cs similarity index 100% rename from Moq.Tests/CaptureMatchFixture.cs rename to tests/Moq.Tests/CaptureMatchFixture.cs diff --git a/Moq.Tests/ConditionalSetupFixture.cs b/tests/Moq.Tests/ConditionalSetupFixture.cs similarity index 100% rename from Moq.Tests/ConditionalSetupFixture.cs rename to tests/Moq.Tests/ConditionalSetupFixture.cs diff --git a/Moq.Tests/CustomDefaultValueProviderFixture.cs b/tests/Moq.Tests/CustomDefaultValueProviderFixture.cs similarity index 100% rename from Moq.Tests/CustomDefaultValueProviderFixture.cs rename to tests/Moq.Tests/CustomDefaultValueProviderFixture.cs diff --git a/Moq.Tests/CustomMatcherFixture.cs b/tests/Moq.Tests/CustomMatcherFixture.cs similarity index 100% rename from Moq.Tests/CustomMatcherFixture.cs rename to tests/Moq.Tests/CustomMatcherFixture.cs diff --git a/Moq.Tests/DefaultValueProviderFixture.cs b/tests/Moq.Tests/DefaultValueProviderFixture.cs similarity index 100% rename from Moq.Tests/DefaultValueProviderFixture.cs rename to tests/Moq.Tests/DefaultValueProviderFixture.cs diff --git a/Moq.Tests/Demo.cs b/tests/Moq.Tests/Demo.cs similarity index 100% rename from Moq.Tests/Demo.cs rename to tests/Moq.Tests/Demo.cs diff --git a/Moq.Tests/EmptyDefaultValueProviderFixture.cs b/tests/Moq.Tests/EmptyDefaultValueProviderFixture.cs similarity index 100% rename from Moq.Tests/EmptyDefaultValueProviderFixture.cs rename to tests/Moq.Tests/EmptyDefaultValueProviderFixture.cs diff --git a/Moq.Tests/ExpressionExtensionsFixture.cs b/tests/Moq.Tests/ExpressionExtensionsFixture.cs similarity index 100% rename from Moq.Tests/ExpressionExtensionsFixture.cs rename to tests/Moq.Tests/ExpressionExtensionsFixture.cs diff --git a/Moq.Tests/ExtensibilityFixture.cs b/tests/Moq.Tests/ExtensibilityFixture.cs similarity index 100% rename from Moq.Tests/ExtensibilityFixture.cs rename to tests/Moq.Tests/ExtensibilityFixture.cs diff --git a/Moq.Tests/ExtensionsFixture.cs b/tests/Moq.Tests/ExtensionsFixture.cs similarity index 100% rename from Moq.Tests/ExtensionsFixture.cs rename to tests/Moq.Tests/ExtensionsFixture.cs diff --git a/Moq.Tests/GeneratedReturnsExtensionsFixture.cs b/tests/Moq.Tests/GeneratedReturnsExtensionsFixture.cs similarity index 100% rename from Moq.Tests/GeneratedReturnsExtensionsFixture.cs rename to tests/Moq.Tests/GeneratedReturnsExtensionsFixture.cs diff --git a/Moq.Tests/InvocationsFixture.cs b/tests/Moq.Tests/InvocationsFixture.cs similarity index 100% rename from Moq.Tests/InvocationsFixture.cs rename to tests/Moq.Tests/InvocationsFixture.cs diff --git a/Moq.Tests/Linq/MockRepositoryQuerying.cs b/tests/Moq.Tests/Linq/MockRepositoryQuerying.cs similarity index 100% rename from Moq.Tests/Linq/MockRepositoryQuerying.cs rename to tests/Moq.Tests/Linq/MockRepositoryQuerying.cs diff --git a/Moq.Tests/Linq/QueryableMocksFixture.cs b/tests/Moq.Tests/Linq/QueryableMocksFixture.cs similarity index 100% rename from Moq.Tests/Linq/QueryableMocksFixture.cs rename to tests/Moq.Tests/Linq/QueryableMocksFixture.cs diff --git a/Moq.Tests/Linq/SupportedQuerying.cs b/tests/Moq.Tests/Linq/SupportedQuerying.cs similarity index 100% rename from Moq.Tests/Linq/SupportedQuerying.cs rename to tests/Moq.Tests/Linq/SupportedQuerying.cs diff --git a/Moq.Tests/Linq/UnsupportedQuerying.cs b/tests/Moq.Tests/Linq/UnsupportedQuerying.cs similarity index 100% rename from Moq.Tests/Linq/UnsupportedQuerying.cs rename to tests/Moq.Tests/Linq/UnsupportedQuerying.cs diff --git a/Moq.Tests/LookupOrFallbackDefaultValueProviderFixture.cs b/tests/Moq.Tests/LookupOrFallbackDefaultValueProviderFixture.cs similarity index 100% rename from Moq.Tests/LookupOrFallbackDefaultValueProviderFixture.cs rename to tests/Moq.Tests/LookupOrFallbackDefaultValueProviderFixture.cs diff --git a/Moq.Tests/MatcherAttributeFixture.cs b/tests/Moq.Tests/MatcherAttributeFixture.cs similarity index 100% rename from Moq.Tests/MatcherAttributeFixture.cs rename to tests/Moq.Tests/MatcherAttributeFixture.cs diff --git a/Moq.Tests/Matchers/AnyMatcherFixture.cs b/tests/Moq.Tests/Matchers/AnyMatcherFixture.cs similarity index 100% rename from Moq.Tests/Matchers/AnyMatcherFixture.cs rename to tests/Moq.Tests/Matchers/AnyMatcherFixture.cs diff --git a/Moq.Tests/MatchersFixture.cs b/tests/Moq.Tests/MatchersFixture.cs similarity index 100% rename from Moq.Tests/MatchersFixture.cs rename to tests/Moq.Tests/MatchersFixture.cs diff --git a/Moq.Tests/MockBehaviorFixture.cs b/tests/Moq.Tests/MockBehaviorFixture.cs similarity index 100% rename from Moq.Tests/MockBehaviorFixture.cs rename to tests/Moq.Tests/MockBehaviorFixture.cs diff --git a/Moq.Tests/MockDefaultValueProviderFixture.cs b/tests/Moq.Tests/MockDefaultValueProviderFixture.cs similarity index 100% rename from Moq.Tests/MockDefaultValueProviderFixture.cs rename to tests/Moq.Tests/MockDefaultValueProviderFixture.cs diff --git a/Moq.Tests/MockFixture.cs b/tests/Moq.Tests/MockFixture.cs similarity index 100% rename from Moq.Tests/MockFixture.cs rename to tests/Moq.Tests/MockFixture.cs diff --git a/Moq.Tests/MockRepositoryFixture.cs b/tests/Moq.Tests/MockRepositoryFixture.cs similarity index 100% rename from Moq.Tests/MockRepositoryFixture.cs rename to tests/Moq.Tests/MockRepositoryFixture.cs diff --git a/Moq.Tests/MockSequenceFixture.cs b/tests/Moq.Tests/MockSequenceFixture.cs similarity index 100% rename from Moq.Tests/MockSequenceFixture.cs rename to tests/Moq.Tests/MockSequenceFixture.cs diff --git a/Moq.Tests/MockedDelegatesFixture.cs b/tests/Moq.Tests/MockedDelegatesFixture.cs similarity index 100% rename from Moq.Tests/MockedDelegatesFixture.cs rename to tests/Moq.Tests/MockedDelegatesFixture.cs diff --git a/Moq.Tests/MockedEventsFixture.cs b/tests/Moq.Tests/MockedEventsFixture.cs similarity index 100% rename from Moq.Tests/MockedEventsFixture.cs rename to tests/Moq.Tests/MockedEventsFixture.cs diff --git a/Moq.Tests/MockedFixture.cs b/tests/Moq.Tests/MockedFixture.cs similarity index 100% rename from Moq.Tests/MockedFixture.cs rename to tests/Moq.Tests/MockedFixture.cs diff --git a/Moq.Tests/Moq.Tests.csproj b/tests/Moq.Tests/Moq.Tests.csproj similarity index 94% rename from Moq.Tests/Moq.Tests.csproj rename to tests/Moq.Tests/Moq.Tests.csproj index 53fdf1a5b..0deb2ba30 100644 --- a/Moq.Tests/Moq.Tests.csproj +++ b/tests/Moq.Tests/Moq.Tests.csproj @@ -3,7 +3,7 @@ net46;netcoreapp2.0 Moq.Tests - ../Moq.snk + ..\..\Moq.snk True full true @@ -26,7 +26,7 @@ - + diff --git a/Moq.Tests/OccurrenceFixture.cs b/tests/Moq.Tests/OccurrenceFixture.cs similarity index 100% rename from Moq.Tests/OccurrenceFixture.cs rename to tests/Moq.Tests/OccurrenceFixture.cs diff --git a/Moq.Tests/OutRefFixture.cs b/tests/Moq.Tests/OutRefFixture.cs similarity index 100% rename from Moq.Tests/OutRefFixture.cs rename to tests/Moq.Tests/OutRefFixture.cs diff --git a/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj similarity index 98% rename from Moq.Tests/Pex/Moq.UnitTests.Pex.csproj rename to tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj index 56163233b..5996fa31b 100644 --- a/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj +++ b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj @@ -49,7 +49,7 @@ - + {1C91AC30-5977-4BE5-BA67-8EB186C03514} Moq diff --git a/Moq.Tests/Pex/Moq.UnitTests.Pex.sln b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln similarity index 96% rename from Moq.Tests/Pex/Moq.UnitTests.Pex.sln rename to tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln index 50f4d9094..065fbcc7e 100644 --- a/Moq.Tests/Pex/Moq.UnitTests.Pex.sln +++ b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Moq.UnitTests.Pex", "Moq.UnitTests.Pex.csproj", "{662DD403-EFFD-4804-A29D-2E1F80D92835}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Moq", "..\..\Source\Moq.csproj", "{1C91AC30-5977-4BE5-BA67-8EB186C03514}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Moq", "..\..\..\src\Moq\Moq.csproj", "{1C91AC30-5977-4BE5-BA67-8EB186C03514}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Moq.Tests/Pex/ShouldExpectCallReturn.cs b/tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs similarity index 100% rename from Moq.Tests/Pex/ShouldExpectCallReturn.cs rename to tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs diff --git a/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs b/tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs similarity index 100% rename from Moq.Tests/Pex/ShouldExpectCallWithArgument.cs rename to tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs diff --git a/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs b/tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs similarity index 100% rename from Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs rename to tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs diff --git a/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs b/tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs similarity index 100% rename from Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs rename to tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs diff --git a/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs b/tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs similarity index 100% rename from Moq.Tests/Pex/ShouldMatchPredicateArgument.cs rename to tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs diff --git a/Moq.Tests/Properties/AssemblyInfo.cs b/tests/Moq.Tests/Properties/AssemblyInfo.cs similarity index 100% rename from Moq.Tests/Properties/AssemblyInfo.cs rename to tests/Moq.Tests/Properties/AssemblyInfo.cs diff --git a/Moq.Tests/PropertiesFixture.cs b/tests/Moq.Tests/PropertiesFixture.cs similarity index 100% rename from Moq.Tests/PropertiesFixture.cs rename to tests/Moq.Tests/PropertiesFixture.cs diff --git a/Moq.Tests/ProtectedAsMockFixture.cs b/tests/Moq.Tests/ProtectedAsMockFixture.cs similarity index 100% rename from Moq.Tests/ProtectedAsMockFixture.cs rename to tests/Moq.Tests/ProtectedAsMockFixture.cs diff --git a/Moq.Tests/ProtectedMockFixture.cs b/tests/Moq.Tests/ProtectedMockFixture.cs similarity index 100% rename from Moq.Tests/ProtectedMockFixture.cs rename to tests/Moq.Tests/ProtectedMockFixture.cs diff --git a/Moq.Tests/RecursiveMocksFixture.cs b/tests/Moq.Tests/RecursiveMocksFixture.cs similarity index 100% rename from Moq.Tests/RecursiveMocksFixture.cs rename to tests/Moq.Tests/RecursiveMocksFixture.cs diff --git a/Moq.Tests/Regressions/FluentMockIssues.cs b/tests/Moq.Tests/Regressions/FluentMockIssues.cs similarity index 100% rename from Moq.Tests/Regressions/FluentMockIssues.cs rename to tests/Moq.Tests/Regressions/FluentMockIssues.cs diff --git a/Moq.Tests/Regressions/IssueReportsFixture.cs b/tests/Moq.Tests/Regressions/IssueReportsFixture.cs similarity index 100% rename from Moq.Tests/Regressions/IssueReportsFixture.cs rename to tests/Moq.Tests/Regressions/IssueReportsFixture.cs diff --git a/Moq.Tests/Regressions/StreamFixture.cs b/tests/Moq.Tests/Regressions/StreamFixture.cs similarity index 100% rename from Moq.Tests/Regressions/StreamFixture.cs rename to tests/Moq.Tests/Regressions/StreamFixture.cs diff --git a/Moq.Tests/ReturnsExtensionsFixture.cs b/tests/Moq.Tests/ReturnsExtensionsFixture.cs similarity index 100% rename from Moq.Tests/ReturnsExtensionsFixture.cs rename to tests/Moq.Tests/ReturnsExtensionsFixture.cs diff --git a/Moq.Tests/ReturnsFixture.cs b/tests/Moq.Tests/ReturnsFixture.cs similarity index 100% rename from Moq.Tests/ReturnsFixture.cs rename to tests/Moq.Tests/ReturnsFixture.cs diff --git a/Moq.Tests/ReturnsValidationFixture.cs b/tests/Moq.Tests/ReturnsValidationFixture.cs similarity index 100% rename from Moq.Tests/ReturnsValidationFixture.cs rename to tests/Moq.Tests/ReturnsValidationFixture.cs diff --git a/Moq.Tests/SequenceExtensionsFixture.cs b/tests/Moq.Tests/SequenceExtensionsFixture.cs similarity index 100% rename from Moq.Tests/SequenceExtensionsFixture.cs rename to tests/Moq.Tests/SequenceExtensionsFixture.cs diff --git a/Moq.Tests/SequentialActionExtensionsFixture.cs b/tests/Moq.Tests/SequentialActionExtensionsFixture.cs similarity index 100% rename from Moq.Tests/SequentialActionExtensionsFixture.cs rename to tests/Moq.Tests/SequentialActionExtensionsFixture.cs diff --git a/Moq.Tests/StubExtensionsFixture.cs b/tests/Moq.Tests/StubExtensionsFixture.cs similarity index 100% rename from Moq.Tests/StubExtensionsFixture.cs rename to tests/Moq.Tests/StubExtensionsFixture.cs diff --git a/Moq.Tests/TimesFixture.cs b/tests/Moq.Tests/TimesFixture.cs similarity index 100% rename from Moq.Tests/TimesFixture.cs rename to tests/Moq.Tests/TimesFixture.cs diff --git a/Moq.Tests/VerifyFixture.cs b/tests/Moq.Tests/VerifyFixture.cs similarity index 100% rename from Moq.Tests/VerifyFixture.cs rename to tests/Moq.Tests/VerifyFixture.cs From f9c87b114dab0cd29107c6848819c0937789f6aa Mon Sep 17 00:00:00 2001 From: stakx Date: Sun, 22 Jul 2018 01:46:48 +0200 Subject: [PATCH 2/3] Remove stale samples --- Samples/Lib/Microsoft.Web.Mvc.dll | Bin 101376 -> 0 bytes Samples/Lib/Moq.dll | Bin 287744 -> 0 bytes Samples/Lib/Moq.pdb | Bin 280064 -> 0 bytes Samples/Lib/Moq.xml | 3450 ----------------- Samples/Lib/System.Web.Abstractions.dll | Bin 84800 -> 0 bytes Samples/Lib/System.Web.Mvc.dll | Bin 187200 -> 0 bytes Samples/Lib/System.Web.Mvc.xml | 3136 --------------- Samples/Lib/System.Web.Routing.dll | Bin 68416 -> 0 bytes Samples/Lib/nunit.framework.dll | Bin 77824 -> 0 bytes .../ProductsMvcSample/ProductsMvcSample.sln | 34 - .../Controllers/HomeController.cs | 12 - .../Controllers/ProductsController.cs | 36 - .../Source/ProductsMvcSample/Default.aspx | 3 - .../Source/ProductsMvcSample/Default.aspx.cs | 17 - .../Source/ProductsMvcSample/Global.asax | 1 - .../Source/ProductsMvcSample/Global.asax.cs | 33 - .../ProductsMvcSample/Models/Product.cs | 10 - .../Models/ProductsListViewData.cs | 16 - .../ProductsMvcSample.csproj | 144 - .../Properties/AssemblyInfo.cs | 34 - .../Services/IProductsCatalogService.cs | 11 - .../Services/ProductsCatalogService.cs | 38 - .../ProductsMvcSample/Views/Home/Welcome.aspx | 11 - .../Views/Home/Welcome.aspx.cs | 8 - .../Views/Products/ProductsList.aspx | 15 - .../Views/Products/ProductsList.aspx.cs | 15 - .../Views/Shared/Site.Master | 19 - .../Views/Shared/Site.Master.cs | 8 - .../Source/ProductsMvcSample/Web.config | 148 - .../Controllers/ProductsControllerFixture.cs | 90 - .../ProductsMvcSample.Tests/MvcTestHelper.cs | 47 - .../ProductsMvcSample.Tests.csproj | 94 - .../Properties/AssemblyInfo.cs | 36 - .../Routes/ProductsRoutesFixture.cs | 39 - Samples/StoreSample/Source/Models/Category.cs | 10 - Samples/StoreSample/Source/Models/Order.cs | 11 - Samples/StoreSample/Source/Models/Product.cs | 10 - .../Source/Presenters/ProductsPresenter.cs | 39 - .../Source/Properties/AssemblyInfo.cs | 36 - .../Source/Services/CatalogService.cs | 8 - .../Source/Services/ICatalogService.cs | 13 - Samples/StoreSample/Source/Store.csproj | 58 - .../Source/Views/CategoryEventArgs.cs | 14 - .../StoreSample/Source/Views/IProductsView.cs | 12 - Samples/StoreSample/StoreSample.sln | 31 - Samples/StoreSample/Stories.txt | 10 - .../UnitTests/ProductsPresenterFixturecs.cs | 122 - .../UnitTests/Properties/AssemblyInfo.cs | 36 - .../StoreSample/UnitTests/Store.Tests.csproj | 65 - 49 files changed, 7980 deletions(-) delete mode 100644 Samples/Lib/Microsoft.Web.Mvc.dll delete mode 100644 Samples/Lib/Moq.dll delete mode 100644 Samples/Lib/Moq.pdb delete mode 100644 Samples/Lib/Moq.xml delete mode 100644 Samples/Lib/System.Web.Abstractions.dll delete mode 100644 Samples/Lib/System.Web.Mvc.dll delete mode 100644 Samples/Lib/System.Web.Mvc.xml delete mode 100644 Samples/Lib/System.Web.Routing.dll delete mode 100644 Samples/Lib/nunit.framework.dll delete mode 100644 Samples/ProductsMvcSample/ProductsMvcSample.sln delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/HomeController.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/ProductsController.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/Product.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/ProductsListViewData.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/ProductsMvcSample.csproj delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Properties/AssemblyInfo.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/IProductsCatalogService.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/ProductsCatalogService.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master.cs delete mode 100644 Samples/ProductsMvcSample/Source/ProductsMvcSample/Web.config delete mode 100644 Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Controllers/ProductsControllerFixture.cs delete mode 100644 Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/MvcTestHelper.cs delete mode 100644 Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/ProductsMvcSample.Tests.csproj delete mode 100644 Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Properties/AssemblyInfo.cs delete mode 100644 Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Routes/ProductsRoutesFixture.cs delete mode 100644 Samples/StoreSample/Source/Models/Category.cs delete mode 100644 Samples/StoreSample/Source/Models/Order.cs delete mode 100644 Samples/StoreSample/Source/Models/Product.cs delete mode 100644 Samples/StoreSample/Source/Presenters/ProductsPresenter.cs delete mode 100644 Samples/StoreSample/Source/Properties/AssemblyInfo.cs delete mode 100644 Samples/StoreSample/Source/Services/CatalogService.cs delete mode 100644 Samples/StoreSample/Source/Services/ICatalogService.cs delete mode 100644 Samples/StoreSample/Source/Store.csproj delete mode 100644 Samples/StoreSample/Source/Views/CategoryEventArgs.cs delete mode 100644 Samples/StoreSample/Source/Views/IProductsView.cs delete mode 100644 Samples/StoreSample/StoreSample.sln delete mode 100644 Samples/StoreSample/Stories.txt delete mode 100644 Samples/StoreSample/UnitTests/ProductsPresenterFixturecs.cs delete mode 100644 Samples/StoreSample/UnitTests/Properties/AssemblyInfo.cs delete mode 100644 Samples/StoreSample/UnitTests/Store.Tests.csproj diff --git a/Samples/Lib/Microsoft.Web.Mvc.dll b/Samples/Lib/Microsoft.Web.Mvc.dll deleted file mode 100644 index 1def4df903a2000af9e02e6aa4353439b78f6317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101376 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

C6DMYI=}g`!CjHcyU89|ES$RD~|VpaLr#>-aeC zL5Of13eFoQ5&KA0d~26T;voT-rll8mG)i0Hq&mw%zx+6yv`ig#j?-hwPW3o4F3yj=JGe-OO(cWZ2&^X4KDms#2JF8u$qe@Lso*a2A zmTyCYHO)bj!c-cTu0oKF+%&S3qO$`n2Lohr1&PHpj*4vdoJW^wcy8&(Q3ul*7Hqf@ zq9e_~n}*+>EO?l;#32u9uE-!YCK8dJj_w_;(PVeTvRf9~)Czc@*@;kq4LCn4kJaZ& zh9T?Sk)43ar3)4!JE1Aow<8|ixG6_cYaF-xdN9Z5C?&Vn?F4hTUmZE&i8j_}ojAeF zuqv8};tZ!<kMNL& z;@Tve7PWw(KAiULbu`;_4ibt}9DBC7TN3Gq&X9*CuRARY_ipURxUq96PUc6$8+-A< zCfb>RZ_v@daU&gEwX;ba+yL4OP4J8yCBq!Uf~PyYokI>z)e#=z7D*jZIw5Wo!^%V6 z54BN^iM}N`!9X1JZd?|L_t3VaQ;{+xR%_=;z`2rQY?Sj<{bil)d{h&wxu$Mh|Ev@B zxC48%xZP6;nZ2?$UL`c+v`s{0u?sP3dqd#!a1ssjKB9>sWZ;N{irQuC~sQ zIAD+yiz@Gr&O{@suYJwtb~&t zNv^eJR;-4aPgij^&p~N1yz(XFo8dkZowTFI^D$&R0LDOa-e<9CHgCmkVXDvSA5*Q< zOVAoyJ_4Ud4w@Zp?(L$8+QeY4ZR(AkTl%pMTfq;-`Q{4jRs_B0z^FX(qKz|;1CwQ2 zripsKHzv(WR`SIn3pER<8SU-KO;Owd;5MMexJFDAW{9Si@%5L@YH#m`XWpH-BrC^E zQGdDf3X7^Y$DI|K!m|U2ZN{op=`oaL6PX-rFPN8KU_!}V5Ub(0M(E-UKRri9_I(s{ z5QR5N>9cyVWH91-I@B?2r5WsJ$r9!cNF$6aU&@rv>97*(#xQg|b6fy>$0kMQl*UVH z1Pv}IAREeTfl84`<8L}4F>GeZlW`;lbQ0QfrX16=$zGDt7wF2f5Sf}yBz)FFb z(mu~$b`#RfPc(rOJlOY$C;90$3r3w9<5`E-=rD;`&~ch$W48XX4ejlXy|LaMJvd=X zKJrx9f_i(cb=k+;+goA#M12@zJYh#2S)%Rj@($xhj8PkJ7D-EHDuSwlqtyWmAV|=T{lzR%_1F?!y)Fl z;7fhakJ+HIjcNC-NWn0frH$LV8K`sTnN(i@)leiHbfm3~EVjEaYXUT-o zOf}AK$J1jhv3zOzp3O?{h}Z>!zL~p=or9i58WlKXUOwT}v^Vz!gT_h?3(N z3vtZ3bcu_3;HAC1IYlz7Qv>X*O_-$&3{{m7vS%)ANV7_!r7zNn*_K&DIr2E5AiVK`krhf{c|%X8L4evrd#`e!aUFE?EP=yRkuJK@ z&X)zj2i$g?peDzS8p_w|awr>YK$b_Uy3aE7bsb9kB-=Uk57L)dIGtEi&~^n&aW)-` zr~L;QO!N4dV=ji-ROTS<1{Zcv)Sdu&QPSs$C$SleC+C~y(;5@aUKO=aOd~Tcd9~dh z%NwYbFH>PJ5#}x2wY0YzH$=^JxE}U{HKuI(F|@Mab3S-tf;|OZ1BjL6{5j$nhOK1N!Boe6EQ0c}L?{98olAxi z^Ki;z11^yB4f3qso^J0wC3raS9*KP~i+6wEDan`2s3~9VVp1PtUSU7Mfx@uPL`}o~ zAbd(|LBcU9k1&vNa!Ty*#otO?) zn1*z{!<(`@-PT{~la6!B)oD-e79q#{UT+>+q{~gJr=2KsX-`R*vQC#Y0~gjv{T<_h zw0jiu25c4OW-2UpbRYzp zH-#b>LC25`vg$DtL@O5YbbW+KV2$m3)rpy8+EbfIW=i(JtbQJM7_}|$VxXwl*rNuExD_uJ|qlr$7n42>E5KmpoQfHafrWZYY zljoU3wFj9Z4&0`S8!2+(S#juk{iNO1HXQ zWi-uN+O8e5z<1znj_6(?w#{WR>^MUdS^a4~TH{AGQut1ZQeREaaJgaNxsx*U%@AqR zjVb*w<|Z?oyP!GiW)j5Io9WJVX7GZ^Atx_Tq|Bo5zb(Bt`H7g*poz#$ZKjl|+^2JL zskZL2QO+w1Dm8nGmS&b+N*Dmsr6h$h!%!z{Hshg;?H|^6t0m_AO{FZPTq58-4EOR(Cm)m8WF;>a+0r z(KD8qu3WJW^Ys|KuvguZ-Kq`QEuCgMc-bsV*>bxw^=?`&os}(dlv4LzGdCM(H&n5> zH0_l}bVeexC#IoyvajBdzM9Vp8|fs6q({6?!!FH7E1>qm&bB<9hJBfA!Z`4gc?pQQ zz!KqHmd(?!Mn89==;m`GN^;EHiK(NV7}h>}*99(=9g%5i+bfKM!-Z^Vcp&5@ELyx~ z_u2FuyB^cgEvM0ahp}MMK}*jq=k(KSVFu0Vbs2_p`V7&_6T&&xgiVPEo*`h3&+qP; zE*dv(jMK#c`#wASkkV3yx6#1?%%zSSQTF|O*s$buUI*aZ1Res&hYq&?jLmjjDGKq) zMDj$KCcBArDN59*UymY@P30^YdGPee60+OLC2U7cd8BOVdy{HIk1|s+-m9Q>3)7G! z)1uShIz{;b2)sL-m`qDl!adsnn$Emo-GdE(dYctp2F1_TC~k!CQ5oW9Nn{(I#Nf@T z>8CB4%_n)dl@;#eL=oa2Y3$?djHMy0X9r!8`LQ1Bl0Wtv;ANuYa8|(Sn3_9(xbd+P zN0!nPvFOHrHN9nk-a?hI9>&TRsmIl{lcBtx<}O;i$YIjC^W&0tC&BF43 zR??eWteB0LM}=`7h76(FY~k|&v<=TU_vQI8IjS6Mdvi!SP_S`4A{;0T=1kNKK_}-d zFImpB%VK!p;PU=Re}v?>Iu_r|C(OwC+Zv{&oN4Ds>+w`hsgSw9q^6j&DG~Ia#LQ0- zVsd8+_97Dn>gTYu#&q3Hul#^M&|<+_M9KExwW9RkxjQ1CJ(w}tWukYzm`_O6=e^3XQxaTw1<0|Vzi&nPnK+6NCWMd$(fY9jc0M0UUV!jnS+BQ z*Vu7+SjHSy>D$dS#imXH+eX@oy-_n0>ldknL|`QaSNk+a3#mHz9A`*9$Bkn7S}~~! z@EjZjv2ICh0uL~G)ao!E-LiSG^2(!&^o~#4KJrkO#~tOhSsA7!ZG?6eaQnVjE+@%< zfwjgWN0PO%M3;6TX&)IEvS17%Ve4tF+SRT#Pe1ar*joAYi3UNfdiX4VEId7%$w6fW zYM?Htm2Y%HNXU!0W}l#g&C@pMkI3ewIK&dggB=6`)B#NFCZ|6T=W)ebhcF%;Y>4^n zW5&A&;BLut9`rtLI|7MFG~VD{)`j=v$MM#E9HqlM^n3BaoDB%!%pu;t4`aYM3U3ES z7-NMfj3QSbzg=JCC-G&VKBS6boR7lW`+HCp`P@;w!C&O}f^H9`7H&nT8#yQ(1r94x z3VU$s3-9|E#T`s9DLE)1K01*<3b+{@EkSBG{tqHO4j2K2KGd@VpCPijX*GEXwc<+w z5#(E<>JK7!9A$}9*bw9kf zO@Mfy)@|TW54fjq7FhBtrWPl`L5y-0&O>Y?C_=KHWZq7+{i80qPPj<-= z@=^^!e9Lr|T1Q!bH4&qA&qQ;i!3Q)wsNakiM!Yh%x8@+7jP#6zkHi9SW z7xY*m@tET%&DXuJqT@M3Y!q3)>FyNfF$el z@!f@~;PiZiV`vrSka{E2>Nu@dXafh#uKVXJl5C&8I_h}(L~2!51iHzo3a0vrNu8jIZ7t-9LB!PUcug@N&JiLMg(^_JaePTDSI&$< zIGhw#s?=hHELAIypbngOapJ0S(X$51XqysoLws%Ij>XWdG;4M8EQ%YQs*aC`C(w~J zSV{571h6tW=r(~KwOD@G1A}?EtwpJ9GM^|WhWnD^bhqunY>M0>jpH1OpCXJyhPTn*De!+)I+Bgu?}ksB|&N2xC6gG{a{qp6@5 zn$T+2RAT0&PPh~~>4M%O)i@7-bMY4z zBD5H_(0GiYP8$13$YV7qcHmd)H_419Eb66NjI^x?XQzl3=O}TG#}V;UEj2S8o^R;mmq{gf84_v z)~mA-@{sn$+4@|TvmN?H167Uz(puBPkoLDIDx}+FIi#e!ffWNo|4%D1D+qxg86~Qo zRKqEprNB`G@koYY`V?Sw#&!QJ56(KVp$=h^30Vpe;}RkoO-i}}Uv|tfWkvqkx|g!& z)GIDW9W<5Fgw~lR1q|Vj)Roe_G{f_vp(4$tDQ)V`WvD|MizHGh%w4(qqqHPj7MTiU zdYxk3KSx(8IBCgzmW=5sQeQv;!~Y!hRp?XcSuaG0`d+H|Mti6y>>5Z5d+m)hIDU8+#b}nf~ zl>^aaowCAEo+0L}%e_L9kvBXtQv(hZ7&(+H0r z;+ob4z4)W)PPE$`rqgRgI!QDNvo1Ba9sN#PN~T<{vCdwnXi4XJF}UqQz1^6Qi3@k+{-sTK1;nloJzk)izR!%Z=q>v=+-ZbAL_bh7rdrr}1nwAzcY9r_oZE1kTK7??d0u0p@Opws?)UFNf>taH|Mfm!rGFr$`vPUcO|i0p`%H{C zPbT?{JpXc6o`2xx{Gc#VL7`I(I`(mp-~wFE!Ck=meD0tQm_O0VK2hlIiJTK~IR|&? zc|IcH124WjVshX%u!!2q#=GbXeJ+iF4p2ax?AFUgxkh~4S%BQY?9s|aA+sdYii3JN zP)NB)E7uCScA3IW0a8%$eI$``;SK8kDgJ@|0n}YC{8KzZaPTvK)tFMQYg)QF<^LOa5`U)bp?Ba~pBD-SH>Q)h6kF7)L(^d<4d!e%T;`20OS zk1*)R=M^sg4JbqaYDWkVNui-Wm8_z}AV;5n;5q-m^T1f*^$PUOOa6gZ@*(_c=+Q1; zS<>sRHdAJKwJ0U;;_G2B><_@YhfWQRx~vM4-IFpIXb2)LLsm zf;k=%BvQ&TuutaDd>Dyn(IM2iAOFfo=@EYj`m&$ZA0r~Q)*R{q8krz#4qT4YfYG(U zh=QPj5~e;0abV7~_x(2-NTvO}i? zSQ1m9Jeq$>AWs-tAmBwc)XC^u|G?W+vRa_4+!-j+Aq$1fC9q^>Au5}rh!=x6&&nhz zdjlB-y`{p=147;a$!c<5-k20BaMO?O;YcbUHZ0&m7qIYC#oPsN%N~21Bl~4!zn2DZ z7Yt55cNm4BHRXb}bqblMw+Za`V3biJETZg`Vm6v@Gu-c`4&t&EFpnckbseHll}R(j zT_Ss66l_`UltA#bN$5mUqp_vBJ9k+xW*g1|@;X_`95u61Sw~i<4a1q0woW ztYm$wbPLkh5;eB>f%-jYiqxBZ{*+e8nnzY)Kcp=D>uIp8#}HZ1!>Hd^D2)NMjm-db zyd+3{*UuQjqHe??U`%izQ8u0gj)`U>f*`bz$Sx$Z3yCk;jZ_F$Gf)~dG`1nI52-5f zQywG@>-X0vIZy>`U~BwShO^S7Ciu4~o%N?CQMws1vzn)DH3*xdks_NKpu6t&s~04UEqh zC{O`pgRy2DkH;Q0JwGSqQAY~;A|xLORKcoaY`=(!M*a@G%w2&5DRkJ4DiWj5pQ@9+ zn5v@`NZ*ISPi>uvf1pw}@H_uHpE>Ukb~a`sYS`0|CDXB8g}S{YJ( zQ6#)F?n8_Gj)XV+X^FMB~z*sB2!Sp#!_9 zM|R2HSuB5+7n37s&2=8?f6QG*URA(L>P)j(K2K-}=+w;tOh4d#Wj+Y=3@oRbm6F~{ z)q5Dt=sk>+)XI_|+gTo!vbRYaG3GIA@f-=Oj9)VeV}s~Vq>)yP4u@e#)k)%Ql2nR` zQ+|xdHn=V_50xUSPHaHo}`G#XhG&vk7;?ANgY#0Y?~Y>UbQpgd^PhKyD%Tf=?pCbc*uhq7yb4>J=th2qm zU~*7qo*Yy!f|xU{b}IcpIjF8N%;}XcYM309@6W~F- zWa_Nh0|Q#?%J|vqUW8+D-T#aAx|!gQXla2#^BM#J+tkMWb5siIIkyMuvYw~yH}lC` zO&#}P*m&UK-;RJ>a-f6!sS{X%QMVxkb;Sau6e|?C)3gAB{Xy4Nxew6wqh!Rl5H&tgBEyb$~-Bo~|cY%ZJX`qyOJi5QkpZb6>WdxS9RXIsCcB2l%qrtb= z;VG1BZdx!2?%F}Omm`Q5A?E?DvTU#z+1X(nEJJpn@vG1t^@}RYH6m9w2y+I18g4w; zfdC}cnqeM8Wrb^Cm*?dtu|V>WODahk zG?h;N4`m?FG_?rRup01r~nDvi?lojaV+n+Yy0xx ztHN=?zap61YEg=H9sYM0Xjt@-yzZfKN~=EdaAeTLAf~+A0`4#(4TPqTgfUm8>>tXC zF4d~FVmQ22yo@BeeveD8FDZf${!uPbJXKeIJS{abbzs1MmvppjP}$0(q=(l-jgIDd z3?I~yL8aZT*OVMm|{2TC9p$|_h3ry z0vzXEfWe#5&%4k#87P4JKe!thD36rHV`wGfsP;}Tbt!C80Qw}|c7#bk@xwc9fq=(@ zDzL?H+>0^+|KM$ooG?N89#;U;hA&Q22-#6~Hi|r+00u4Ls{)lCFA=~$i6COIF2wxp z(qupx2Hqi-VP*#2AtEQiWC_iS?@*UWJRDt(tT&`a3+92JVHjQov5+^a&@fR|80P3E zY}mLxI%-$)A2=S!Lm%RYd}9!CYJyRK_L6N6jP`hlS560A-W$O0?OuQC4j4@@7~(xc z+U9u2iw+)mhq`s(9kZHuywb7{LTgM-12w5k%)vWexm$ArzQ6=3oSI-E2Jc}dxyM4J zFux;*+MYv^!F`-#UnT53s--`c2!8zo9}w=nJP*dizwIPSRPFuHy*_ldm!=8|_{d06KtfLDxd*-Xml5RmqawR zT^RsjxP3tCK5P{$zuVdufmC=)M0#6C+1B_6$-=^Gk|S7Znp8)c>M@E~5hWhp05$<( zHp!eJK%=$_?j3wOmQ*Da2L2$2UmxKqfQvX7(Y+V~r|2JIP?M1;@S*7sz6pO&dW4fT zaenrP!PM#PL@nNFg*R~GB{)gEszy1JtfU`Ms~$vKNSuQzRxQX|^bej4NMGzhw2}Ik zXYSO)%;p>z0IcEt1Jv^adkNe@c^)NeaF3>ASnJ$HkCVrXu>e*02L+={yWbzhWX>C@ zLvSL5e~u6S%)rC`fxGEn>QVHS&qvOXUN-(BO{|=7hSteTA$)U%d}RTte2D*qxJnZ( zt(zjjZvK2(Ft#Cx1N%X`-Wm)igWEPmJ2wTBu^`^^$zM6+)UEWU$J!tcf>Y9zI)c4e zuEecuIF*JPjM`cR!kSo1H84%&?2>QkCh}BOq_@kgHNmf`4MsNvqsd@2VNvU<4YuNv zjHG~HSr=}N;GRhrY9J2_YYyzCJzqrbUkdXN4Wo;Ab};>R;8l<PXY{8Qs`+4jik;>)v#6RN5GG2Q_Ic0vcY{oanDX-csL))*wFS*z&Zru z_X7lL%77cHw2Iv0uVI=~@JK@qGRnnfUnlZIBh9?niW~eO2<4vueeEb_<5E7 zp&IybX|zyD1_s;N20weFxt{_kL_QxLy967h8qiB z{-w1%t&Dm3jGn^IryLLg-Uh>F<&YNeK-1Mq85)B9OKf@lND-i>54==P-SCnssZy}z z>L0uldz$caNGFcMOzwhn0_QAHh_s<8h|@no(;Wq{)}WOf=0TdWU#3EjQGlZ_n$Z{M zc}j`!;GHH>nvmi09A}bnB6owHSr)~CP_Y-uo1{NnFtKc1b(Jk z2A+Vy$J`{VO3lPZtmO-)X2Or*67U060Im zMP4`xc;Td4aaCuA^UO97Ow9JIJMn61WXUh6~%5_T3L_+yg z$NC1oQ#n@paBIyLVYfIn(~S62@5AM#8Eu`vn7j5EF@03SRx}pd_|KC^Q#cTKvgyB` zhwV@!OR}*+6VugxmVINT6_?f$wYXw~k5b`%sCZXKmzk*EC+AUHXqeiCjy-kikfFuI zgb%+=x*0KAR)?s*vZ0lfW#D=2XVTuEpP$2#HzHHR=V>^XAYj5<_56^0e{-ZuYt@T! zGcvY~zc-Itdpu3MsH^@;pn)occ8`RHLN_B+?@(m8haP?&M~e^8Mm{|sC$n?P?{R0~ zu~UReSvunAj=z#;1Se5|<~oG^>)3%B6fWR-qkKNqO8W?dt~{Y@rGdZ*r&G_Bfu9Ed zAhs5?Kq(vy7q+OuLV8t$E@E}Ch~~YNTsYGMilKhkY1YIFs%Qj(BC4$v01u?7Oa;3q zGg;tpzIFdhnlOiZpb`VO`ctK74;)zv43^4$7TEO(TyzA4jHeMSg8J zOJ)%ZQ;CHDh1!@-klAi4^|+~~mHyNW`Zp-O&3e}9b!_a{VGo>2q}COX150)y6{b;)c zI#7kQ$V-Lg@I$~yizWPEO!}sJ3b6Eya9NBJqJ{8L%8!2%?H?SErKY07lD`>@`iFKw zDawX!lPY{0ttp3gp#-TlLWHItC=Y&Mnt|NoAG)W&V^q2QL%aP$cS3&)3d)A|ksc$F zo)cENp*cRRRerOGdTy>;jo;`?@+nR!rQh7()0m3I_?B{ohn8AKpkDpO23!qDIk^=)_xe zBDLI;DD>e35p2jV{QqPAKOzB5l!DU{LJXucEEmKW16g>=w-A3<9oED#dhV?LJ7&y4 zXq9NevA|V0dAtIl5KdVyK|BPw0Ac#?yRJX|4|c&2qQ8f~Wd7p14*%x@lq)QSz|VaA zX`o7{cj-zA9a5BMw_}`Xyr5EaON`F1<0AlkgjL;q#sRie6T2ck7AO30KJ@!7Wo)a1-fX=G?}$jqqROCOeG{~M{AX~ zVi(x&#Fwh=CK22w=)`#vYCU~TulGS4z)n}A>4Z4GQ)vq~p vY|5{Ozh;G@3;cURx>c)mQ>J+ORcGJ#jY)#Kc0F?A+}=E?X1L{Inc diff --git a/Samples/Lib/Moq.dll b/Samples/Lib/Moq.dll deleted file mode 100644 index e1b049e3dde628387842160c946e50d89b898663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287744 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 diff --git a/Samples/Lib/Moq.pdb b/Samples/Lib/Moq.pdb deleted file mode 100644 index bc7a830077be052ce28dda9b950f596f64b9afb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280064 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

2eaw(9H$jnVR~kkI)&avE#uo83V7&D`IusWS8R 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ⅈ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 diff --git a/Samples/Lib/Moq.xml b/Samples/Lib/Moq.xml deleted file mode 100644 index f0592f204..000000000 --- a/Samples/Lib/Moq.xml +++ /dev/null @@ -1,3450 +0,0 @@ - - - - Moq - - - - - Interface to be implemented by classes that determine the - default value of non-expected invocations. - - - - - Provides a value for the given member and arguments. - - The member to provide a default - value for. - Optional arguments passed in - to the call that requires a default value. - - - - Provides a typed for a - specific type of . - - The type of event arguments required by the event. - - The mocked event can either be a or custom - event handler which follows .NET practice of providing object sender, EventArgs args - kind of signature. - - - - - Represents a generic event that has been mocked and can - be rised. - - - - - Provided solely to allow the interceptor to determine when the attached - handler is coming from this mocked event so we can assign the - corresponding EventInfo for it. - - - - - Raises the associated event with the given - event argument data. - - - - - Provides support for attaching a to - a generic event. - - Event to convert. - - - - Event raised whenever the mocked event is rised. - - - - - Raises the associated event with the given - event argument data. - - Data to pass to the event. - - - - Provides support for attaching a to - a generic event. - - Event to convert. - - - - Provided solely to allow the interceptor to determine when the attached - handler is coming from this mocked event so we can assign the - corresponding EventInfo for it. - - - - - Utility factory class to use to construct multiple - mocks when consistent verification is - desired for all of them. - - - If multiple mocks will be created during a test, passing - the desired (if different than the - or the one - passed to the factory constructor) and later verifying each - mock can become repetitive and tedious. - - This factory class helps in that scenario by providing a - simplified creation of multiple mocks with a default - (unless overriden by calling - ) and posterior verification. - - - - The following is a straightforward example on how to - create and automatically verify strict mocks using a : - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(); - var bar = factory.Create<IBar>(); - - // no need to call Verifiable() on the setup - // as we'll be validating all of them anyway. - foo.Setup(f => f.Do()); - bar.Setup(b => b.Redo()); - - // exercise the mocks here - - factory.VerifyAll(); - // At this point all setups are already checked - // and an optional MockException might be thrown. - // Note also that because the mocks are strict, any invocation - // that doesn't have a matching setup will also throw a MockException. - - The following examples shows how to setup the factory - to create loose mocks and later verify only verifiable setups: - - var factory = new MockFactory(MockBehavior.Loose); - - var foo = factory.Create<IFoo>(); - var bar = factory.Create<IBar>(); - - // this setup will be verified when we verify the factory - foo.Setup(f => f.Do()).Verifiable(); - - // this setup will NOT be verified - foo.Setup(f => f.Calculate()); - - // this setup will be verified when we verify the factory - bar.Setup(b => b.Redo()).Verifiable(); - - // exercise the mocks here - // note that because the mocks are Loose, members - // called in the interfaces for which no matching - // setups exist will NOT throw exceptions, - // and will rather return default values. - - factory.Verify(); - // At this point verifiable setups are already checked - // and an optional MockException might be thrown. - - The following examples shows how to setup the factory with a - default strict behavior, overriding that default for a - specific mock: - - var factory = new MockFactory(MockBehavior.Strict); - - // this particular one we want loose - var foo = factory.Create<IFoo>(MockBehavior.Loose); - var bar = factory.Create<IBar>(); - - // specify setups - - // exercise the mocks here - - factory.Verify(); - - - - - - - Initializes the factory with the given - for newly created mocks from the factory. - - The behavior to use for mocks created - using the factory method if not overriden - by using the overload. - - - - Creates a new mock with the default - specified at factory construction time. - - Type to mock. - A new . - - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(); - // use mock on tests - - factory.VerifyAll(); - - - - - - Creates a new mock with the default - specified at factory construction time and with the - the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the - constructor arguments, and invoke that to initialize the instance. - This applies only to classes, not interfaces. - - Type to mock. - Constructor arguments for mocked classes. - A new . - - - var factory = new MockFactory(MockBehavior.Default); - - var mock = factory.Create<MyBase>("Foo", 25, true); - // use mock on tests - - factory.Verify(); - - - - - - Creates a new mock with the given . - - Type to mock. - Behavior to use for the mock, which overrides - the default behavior specified at factory construction time. - A new . - - The following example shows how to create a mock with a different - behavior to that specified as the default for the factory: - - var factory = new MockFactory(MockBehavior.Strict); - - var foo = factory.Create<IFoo>(MockBehavior.Loose); - - - - - - Creates a new mock with the given - and with the the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the - constructor arguments, and invoke that to initialize the instance. - This applies only to classes, not interfaces. - - Type to mock. - Behavior to use for the mock, which overrides - the default behavior specified at factory construction time. - Constructor arguments for mocked classes. - A new . - - The following example shows how to create a mock with a different - behavior to that specified as the default for the factory, passing - constructor arguments: - - var factory = new MockFactory(MockBehavior.Default); - - var mock = factory.Create<MyBase>(MockBehavior.Strict, "Foo", 25, true); - - - - - - Implements creation of a new mock within the factory. - - Type to mock. - The behavior for the new mock. - Optional arguments for the construction of the mock. - - - - Verifies all verifiable expectations on all mocks created - by this factory. - - - One or more mocks had expectations that were not satisfied. - - - - Verifies all verifiable expectations on all mocks created - by this factory. - - - One or more mocks had expectations that were not satisfied. - - - - Invokes for each mock - in , and accumulates the resulting - that might be - thrown from the action. - - The action to execute against - each mock. - - - - Whether the base member virtual implementation will be called - for mocked classes if no setup is matched. Defaults to . - - - - - Specifies the behavior to use when returning default values for - unexpected invocations on loose mocks. - - - - - Gets the mocks that have been created by this factory and - that will get verified together. - - - - - Defines the Throws verb. - - - - - Helper interface used to hide the base - members from the fluent API to make it much cleaner - in Visual Studio intellisense. - - - - - - - - - - - - - - - - - Specifies the exception to throw when the method is invoked. - - Exception instance to throw. - - This example shows how to throw an exception when the method is - invoked with an empty string argument: - - mock.Setup(x => x.Execute("")) - .Throws(new ArgumentException()); - - - - - - Specifies the type of exception to throw when the method is invoked. - - Type of exception to instantiate and throw when the setup is matched. - - This example shows how to throw an exception when the method is - invoked with an empty string argument: - - mock.Setup(x => x.Execute("")) - .Throws<ArgumentException>(); - - - - - - Allows the specification of a matching condition for an - argument in a method invocation, rather than a specific - argument value. "It" refers to the argument being matched. - - - This class allows the setup to match a method invocation - with an arbitrary value, with a value in a specified range, or - even one that matches a given predicate. - - - - - Matches any value of the given type. - - - Typically used when the actual argument value for a method - call is not relevant. - - - - // Throws an exception for a call to Remove with any string value. - mock.Setup(x => x.Remove(It.IsAny<string>())).Throws(new InvalidOperationException()); - - - Type of the value. - - - - Matches any value that satisfies the given predicate. - - Type of the argument to check. - The predicate used to match the method argument. - - Allows the specification of a predicate to perform matching - of method call arguments. - - - This example shows how to return the value 1 whenever the argument to the - Do method is an even number. - - mock.Setup(x => x.Do(It.Is<int>(i => i % 2 == 0))) - .Returns(1); - - This example shows how to throw an exception if the argument to the - method is a negative number: - - mock.Setup(x => x.GetUser(It.Is<int>(i => i < 0))) - .Throws(new ArgumentException()); - - - - - - Matches any value that is in the range specified. - - Type of the argument to check. - The lower bound of the range. - The upper bound of the range. - The kind of range. See . - - The following example shows how to expect a method call - with an integer argument within the 0..100 range. - - mock.Setup(x => x.HasInventory( - It.IsAny<string>(), - It.IsInRange(0, 100, Range.Inclusive))) - .Returns(false); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression: - - mock.Setup(x => x.Check(It.IsRegex("[a-z]+"))).Returns(1); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - The options used to interpret the pattern. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression, in a case insensitive way: - - mock.Setup(x => x.Check(It.IsRegex("[a-z]+", RegexOptions.IgnoreCase))).Returns(1); - - - - - - Defines the Returns verb. - - Mocked type. - Type of the return value from the expression. - - - - Specifies the value to return. - - The value to return, or . - - Return a true value from the method call: - - mock.Setup(x => x.Execute("ping")) - .Returns(true); - - - - - - Specifies a function that will calculate the value to return from the method. - - The function that will calculate the return value. - - Return a calculated value when the method is called: - - mock.Setup(x => x.Execute("ping")) - .Returns(() => returnValues[0]); - - The lambda expression to retrieve the return value is lazy-executed, - meaning that its value may change depending on the moment the method - is executed and the value the returnValues array has at - that moment. - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The lookup list can change between invocations and the setup - will return different values accordingly. Also, notice how the specific - string argument is retrieved by simply declaring it as part of the lambda - expression: - - - mock.Setup(x => x.Execute(It.IsAny<string>())) - .Returns((string command) => returnValues[command]); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Returns((string arg1, string arg2) => arg1 + arg2); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Returns((string arg1, string arg2, int arg3) => arg1 + arg2 + arg3); - - - - - - Specifies a function that will calculate the value to return from the method, - retrieving the arguments for the invocation. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - The function that will calculate the return value. - - Return a calculated value which is evaluated lazily at the time of the invocation. - - The return value is calculated from the value of the actual method invocation arguments. - Notice how the arguments are retrieved by simply declaring them as part of the lambda - expression: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Returns((string arg1, string arg2, int arg3, bool arg4) => arg1 + arg2 + arg3 + arg4); - - - - - - Implemented by all generated mock object instances. - - - - - Implemented by all generated mock object instances. - - - - - Reference the Mock that contains this as the mock.Object value. - - - - - Reference the Mock that contains this as the mock.Object value. - - - - - Defines the Raises verb. - - - - - Specifies the event that will be raised - when the setup is met. - - An expression that represents an event attach or detach action. - The event arguments to pass for the raised event. - - The following example shows how to raise an event when - the setup is met: - - var mock = new Mock<IContainer>(); - - mock.Setup(add => add.Add(It.IsAny<string>(), It.IsAny<object>())) - .Raises(add => add.Added += null, EventArgs.Empty); - - - - - - Specifies the event that will be raised - when the setup is matched. - - An expression that represents an event attach or detach action. - A function that will build the - to pass when raising the event. - - - - - Specifies the event that will be raised - when the setup is matched. - - An expression that represents an event attach or detach action. - A function that will build the - to pass when raising the event. - Type of the argument received by the expected invocation. - - - - - Specifies the event that will be raised - when the setup is matched. - - An expression that represents an event attach or detach action. - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - - - - - Specifies the event that will be raised - when the setup is matched. - - An expression that represents an event attach or detach action. - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - - - - - Specifies the event that will be raised - when the setup is matched. - - An expression that represents an event attach or detach action. - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - Type of the fourth argument received by the expected invocation. - - - - - Implements the fluent API. - - - - - Defines the Callback verb and overloads. - - - - - Specifies a callback to invoke when the method is called. - - Callback method to invoke. - - The following example specifies a callback to set a boolean - value that can be used later: - - bool called = false; - mock.Setup(x => x.Execute()) - .Callback(() => called = true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Argument type of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation argument value. - - Notice how the specific string argument is retrieved by simply declaring - it as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute(It.IsAny<string>())) - .Callback((string command) => Console.WriteLine(command)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Callback((string arg1, string arg2, int arg3) => Console.WriteLine(arg1 + arg2 + arg3)); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Callback((string arg1, string arg2, int arg3, bool arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)); - - - - - - Defines occurrence members to constraint setups. - - - - - The expected invocation can happen at most once. - - - - var mock = new Mock<ICommand>(); - mock.Setup(foo => foo.Execute("ping")) - .AtMostOnce(); - - - - - - The expected invocation can happen at most specified number of times. - - - - var mock = new Mock<ICommand>(); - mock.Setup(foo => foo.Execute("ping")) - .AtMost( 5 ); - - - - - - Defines the Raises verb. - - - - - Specifies the mocked event that will be raised - when the setup is met. - - The mocked event, retrieved from - or . - - The event args to pass when raising the event. - - The following example shows how to raise an event when - the setup is met: - - var mock = new Mock<IContainer>(); - // create handler to associate with the event to raise - var handler = mock.CreateEventHandler(); - // associate the handler with the event to raise - mock.Object.Added += handler; - // setup the invocation and the handler to raise - mock.Setup(add => add.Add(It.IsAny<string>(), It.IsAny<object>())) - .Raises(handler, EventArgs.Empty); - - - - - - Specifies the mocked event that will be raised - when the setup is matched. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - - - - - Specifies the mocked event that will be raised - when the setup is matched. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the setup is matched. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the setup is matched. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - - - - - Specifies the mocked event that will be raised - when the setup is matched. - - The mocked event, retrieved from - or . - - A function that will build the - to pass when raising the event. - Type of the first argument received by the expected invocation. - Type of the second argument received by the expected invocation. - Type of the third argument received by the expected invocation. - Type of the fourth argument received by the expected invocation. - - - - - Defines the Verifiable verb. - - - - - Marks the expectation as verifiable, meaning that a call - to will check if this particular - expectation was met. - - - The following example marks the expectation as verifiable: - - mock.Expect(x => x.Execute("ping")) - .Returns(true) - .Verifiable(); - - - - - - Marks the expectation as verifiable, meaning that a call - to will check if this particular - expectation was met, and specifies a message for failures. - - - The following example marks the expectation as verifiable: - - mock.Expect(x => x.Execute("ping")) - .Returns(true) - .Verifiable("Ping should be executed always!"); - - - - - Type to mock, which can be an interface or a class. - - Provides a mock implementation of . - - - Only abstract and virtual members of classes can be mocked. - - The behavior of the mock with regards to the setups and the actual calls is determined - by the optional that can be passed to the - constructor. - - - - The following example shows establishing setups with specific values - for method invocations: - - //setup - data - var order = new Order(TALISKER, 50); - var mock = new Mock<IWarehouse>(); - - //setup - mock.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); - - //exercise - order.Fill(mock.Object); - - //verify - Assert.True(order.IsFilled); - - The following example shows how to use the class - to specify conditions for arguments instead of specific values: - - //setup - data - var order = new Order(TALISKER, 50); - var mock = new Mock<IWarehouse>(); - - //setup - //shows how to expect a value within a range - mock.Setup(x => x.HasInventory( - It.IsAny<string>(), - It.IsInRange(0, 100, Range.Inclusive))) - .Returns(false); - - //shows how to throw for unexpected calls. - mock.Setup(x => x.Remove( - It.IsAny<string>(), - It.IsAny<int>())) - .Throws(new InvalidOperationException()); - - //exercise - order.Fill(mock.Object); - - //verify - Assert.False(order.IsFilled); - - - - - - Base class for mocks and static helper class with methods that - apply to mocked objects, such as to - retrieve a from an object instance. - - - - - Retrieves the mock object for the given object instance. - - Type of the mock to retrieve. Can be omitted as it's inferred - from the object instance passed in as the instance. - The instance of the mocked object. - The mock associated with the mocked object. - The received instance - was not created by Moq. - - The following example shows how to add a new setup to an object - instance which is not the original but rather - the object associated with it: - - // Typed instance, not the mock, is retrieved from some test API. - HttpContextBase context = GetMockContext(); - - // context.Request is the typed object from the "real" API - // so in order to add a setup to it, we need to get - // the mock that "owns" it - Mock<HttpRequestBase> request = Mock.Get(context.Request); - mock.Setup(req => req.AppRelativeCurrentExecutionFilePath) - .Returns(tempUrl); - - - - - - Returns the mocked object value. - - - - - Verifies that all verifiable expectations have been met. - - - This example sets up an expectation and marks it as verifiable. After - the mock is used, a Verify() call is issued on the mock - to ensure the method in the setup was invoked: - - var mock = new Mock<IWarehouse>(); - this.Setup(x => x.HasInventory(TALISKER, 50)).Verifiable().Returns(true); - ... - // other test code - ... - // Will throw if the test code has didn't call HasInventory. - this.Verify(); - - - Not all verifiable expectations were met. - - - - Verifies all expectations regardless of whether they have - been flagged as verifiable. - - - This example sets up an expectation without marking it as verifiable. After - the mock is used, a call is issued on the mock - to ensure that all expectations are met: - - var mock = new Mock<IWarehouse>(); - this.Setup(x => x.HasInventory(TALISKER, 50)).Returns(true); - ... - // other test code - ... - // Will throw if the test code has didn't call HasInventory, even - // that expectation was not marked as verifiable. - this.VerifyAll(); - - - At least one expectation was not met. - - - - Gets the interceptor target for the given expression and root mock, - building the intermediate hierarchy of mock objects if necessary. - - - - - Creates a handler that can be associated to an event receiving - the given and can be used - to raise the event. - - Type of - data passed in to the event. - - This example shows how to invoke an event with a custom event arguments - class in a view that will cause its corresponding presenter to - react by changing its state: - - var mockView = new Mock<IOrdersView>(); - var mockedEvent = mockView.CreateEventHandler<OrderEventArgs>(); - - var presenter = new OrdersPresenter(mockView.Object); - - // Check that the presenter has no selection by default - Assert.Null(presenter.SelectedOrder); - - // Create a mock event handler of the appropriate type - var handler = mockView.CreateEventHandler<OrderEventArgs>(); - // Associate it with the event we want to raise - mockView.Object.Cancel += handler; - // Finally raise the event with a specific arguments data - handler.Raise(new OrderEventArgs { Order = new Order("moq", 500) }); - - // Now the presenter reacted to the event, and we have a selected order - Assert.NotNull(presenter.SelectedOrder); - Assert.Equal("moq", presenter.SelectedOrder.ProductName); - - - - - - Creates a handler that can be associated to an event receiving - a generic and can be used - to raise the event. - - - This example shows how to invoke a generic event in a view that will - cause its corresponding presenter to react by changing its state: - - var mockView = new Mock<IOrdersView>(); - var mockedEvent = mockView.CreateEventHandler(); - - var presenter = new OrdersPresenter(mockView.Object); - - // Check that the presenter is not in the "Canceled" state - Assert.False(presenter.IsCanceled); - - // Create a mock event handler of the appropriate type - var handler = mockView.CreateEventHandler(); - // Associate it with the event we want to raise - mockView.Object.Cancel += handler; - // Finally raise the event - handler.Raise(EventArgs.Empty); - - // Now the presenter reacted to the event, and changed its state - Assert.True(presenter.IsCanceled); - - - - - - Exposes the list of extra interfaces implemented by the mock. - - - - - Behavior of the mock, according to the value set in the constructor. - - - - - Whether the base member virtual implementation will be called - for mocked classes if no setup is matched. Defaults to . - - - - - Specifies the behavior to use when returning default values for - unexpected invocations on loose mocks. - - - - - Specifies the class that will determine the default - value to return when invocations are made that - have no setups and need to return a default - value (for loose mocks). - - - - - Gets the mocked object instance. - - - - - Retrieves the type of the mocked object, its generic type argument. - This is used in the auto-mocking of hierarchy access. - - - - - Base class for visitors of expression trees. - - - Provides the functionality of the internal visitor base class that - comes with Linq. - Matt's comments on the implementation: - - In this variant there is only one visitor class that dispatches calls to the general - Visit function out to specific VisitXXX methods corresponding to different node types. - Note not every node type gets it own method, for example all binary operators are - treated in one VisitBinary method. The nodes themselves do not directly participate - in the visitation process. They are treated as just data. - The reason for this is that the quantity of visitors is actually open ended. - You can write your own. Therefore no semantics of visiting is coupled into the node classes. - It’s all in the visitors. The default visit behavior for node XXX is baked into the base - class’s version of VisitXXX. - - - Another variant is that all VisitXXX methods return a node. - The Expression tree nodes are immutable. In order to change the tree you must construct - a new one. The default VisitXXX methods will construct a new node if any of its sub-trees change. - If no changes are made then the same node is returned. That way if you make a change - to a node (by making a new node) deep down in a tree, the rest of the tree is rebuilt - automatically for you. - - See: http://blogs.msdn.com/mattwar/archive/2007/07/31/linq-building-an-iqueryable-provider-part-ii.aspx. - - Matt Warren: http://blogs.msdn.com/mattwar - Documented by InSTEDD: http://www.instedd.org - - - - Default constructor used by derived visitors. - - - - - Visits the , determining which - of the concrete Visit methods to call. - - - - - Visits the generic , determining and - calling the appropriate Visit method according to the - , which will result - in calls to , - or . - - - - - - - Visits the initializer by - calling the for the - . - - - - - Visits the expression by - calling with the expression. - - - - - Visits the by calling - with the , - and - expressions. - - - - - Visits the by calling - with the - expression. - - - - - Visits the , by default returning the - same without further behavior. - - - - - Visits the by calling - with the , - and - expressions. - - - - - Visits the returning it - by default without further behavior. - - - - - Visits the by calling - with the - expression. - - - - - Visits the by calling - with the expression, - and then with the . - - - - - - - Visits the by iterating - the list and visiting each in it. - - - - - - - Visits the by calling - with the expression. - - - - - - - Visits the by calling - with the . - - - - - - - Visits the by calling - with the - . - - - - - - - Visits the by - calling for each in the - collection. - - - - - - - Visits the by - calling for each - in the collection. - - - - - - - Visits the by calling - with the expression. - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Visits the by calling - with the - expression, then with the - . - - - - - Visits the by calling - with the - expression, and then with the - . - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Visits the by calling - with the - expressions. - - - - - - - Sets an expectation on the mocked type for a call to - to a void method. - - - If more than one expectation is set for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the expected method invocation. - - - var mock = new Mock<IProcessor>(); - this.Setup(x => x.Execute("ping")); - - - - - - Sets an expectation on the mocked type for a call to - to a value returning method. - - Type of the return value. Typically omitted as it can be inferred from the expression. - - If more than one expectation is set for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the expected method invocation. - - - this.Setup(x => x.HasInventory("Talisker", 50)).Returns(true); - - - - - - Sets an expectation on the mocked type for a call to - to a property getter. - - - If more than one expectation is set for the same property getter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property getter. - - - this.SetupGet(x => x.Suspended) - .Returns(true); - - - - - - Sets an expectation on the mocked type for a call to - to a property setter. - - - If more than one expectation is set for the same property setter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - - - this.SetupSet(x => x.Suspended); - - - - - - Sets an expectation on the mocked type for a call to - to a property setter with a specific value. - - - More than one expectation can be set for the setter with - different values. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the expected property setter. - The value expected to be set for the property. - - - this.SetupSet(x => x.Suspended, true); - - - - - - Ctor invoked by AsTInterface exclusively. - - - - - Initializes an instance of the mock with default behavior and with - the given constructor arguments for the class. (Only valid when is a class) - - - The mock will try to find the best match constructor given the constructor arguments, and invoke that - to initialize the instance. This applies only for classes, not interfaces. - - - var mock = new Mock<MyProvider>(someArgument, 25); - - Optional constructor arguments if the mocked type is a class. - - - - Initializes an instance of the mock with default behavior. - - - var mock = new Mock<IFormatProvider>(); - - - - - Initializes an instance of the mock with the specified behavior. - - - var mock = new Mock<IFormatProvider>(MockBehavior.Relaxed); - - Behavior of the mock. - - - - Initializes an instance of the mock with a specific behavior with - the given constructor arguments for the class. - - - The mock will try to find the best match constructor given the constructor arguments, and invoke that - to initialize the instance. This applies only to classes, not interfaces. - - - var mock = new Mock<MyProvider>(someArgument, 25); - - Behavior of the mock. - Optional constructor arguments if the mocked type is a class. - - - - Returns the mocked object value. - - - - - Specifies a setup on the mocked type for a call to - to a void method. - - - If more than one setup is specified for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the expected method invocation. - - - var mock = new Mock<IProcessor>(); - mock.Setup(x => x.Execute("ping")); - - - - - - Specifies a setup on the mocked type for a call to - to a value returning method. - - Type of the return value. Typically omitted as it can be inferred from the expression. - - If more than one setup is specified for the same method or property, - the latest one wins and is the one that will be executed. - - Lambda expression that specifies the method invocation. - - - mock.Setup(x => x.HasInventory("Talisker", 50)).Returns(true); - - - - - - Specifies a setup on the mocked type for a call to - to a property getter. - - - If more than one setup is set for the same property getter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that specifies the property getter. - - - mock.SetupGet(x => x.Suspended) - .Returns(true); - - - - - - Specifies a setup on the mocked type for a call to - to a property setter. - - - If more than one setup is set for the same property setter, - the latest one wins and is the one that will be executed. - - This overloads allows the use of a callback already - typed for the property type. - - - Type of the property. Typically omitted as it can be inferred from the expression. - Lambda expression that sets a property to a value. - - - mock.SetupSet(x => x.Suspended = true); - - - - - - Specifies a setup on the mocked type for a call to - to a property setter. - - - If more than one setup is set for the same property setter, - the latest one wins and is the one that will be executed. - - Lambda expression that sets a property to a value. - - - mock.SetupSet(x => x.Suspended = true); - - - - - - Specifies that the given property should have "property behavior", - meaning that setting its value will cause it to be saved and - later returned when the property is requested. (this is also - known as "stubbing"). - - Type of the property, inferred from the property - expression (does not need to be specified). - Property expression to stub. - - If you have an interface with an int property Value, you might - stub it using the following straightforward call: - - var mock = new Mock<IHaveValue>(); - mock.Stub(v => v.Value); - - After the Stub call has been issued, setting and - retrieving the object value will behave as expected: - - IHaveValue v = mock.Object; - - v.Value = 5; - Assert.Equal(5, v.Value); - - - - - - Specifies that the given property should have "property behavior", - meaning that setting its value will cause it to be saved and - later returned when the property is requested. This overload - allows setting the initial value for the property. (this is also - known as "stubbing"). - - Type of the property, inferred from the property - expression (does not need to be specified). - Property expression to stub. - Initial value for the property. - - If you have an interface with an int property Value, you might - stub it using the following straightforward call: - - var mock = new Mock<IHaveValue>(); - mock.SetupProperty(v => v.Value, 5); - - After the SetupProperty call has been issued, setting and - retrieving the object value will behave as expected: - - IHaveValue v = mock.Object; - // Initial value was stored - Assert.Equal(5, v.Value); - - // New value set which changes the initial value - v.Value = 6; - Assert.Equal(6, v.Value); - - - - - - Specifies that the all properties on the mock should have "property behavior", - meaning that setting its value will cause it to be saved and - later returned when the property is requested. (this is also - known as "stubbing"). The default value for each property will be the - one generated as specified by the property for the mock. - - - If the mock is set to , - the mocked default values will also get all properties setup recursively. - - - - - Verifies that a specific invocation matching the given expression was performed on the mock. Use - in conjuntion with the default . - - - This example assumes that the mock has been used, and later we want to verify that a given - invocation with specific parameters was performed: - - var mock = new Mock<IProcessor>(); - // exercise mock - //... - // Will throw if the test code didn't call Execute with a "ping" string argument. - mock.Verify(proc => proc.Execute("ping")); - - - The invocation was not performed on the mock. - Expression to verify. - - - - Verifies that a specific invocation matching the given expression was performed on the mock. Use - in conjuntion with the default . - - The invocation was not call the times specified by - . - Expression to verify. - The times a method is allowed to be called. - - - - Verifies that a specific invocation matching the given expression was performed on the mock, - specifying a failure error message. Use in conjuntion with the default - . - - - This example assumes that the mock has been used, and later we want to verify that a given - invocation with specific parameters was performed: - - var mock = new Mock<IProcessor>(); - // exercise mock - //... - // Will throw if the test code didn't call Execute with a "ping" string argument. - mock.Verify(proc => proc.Execute("ping")); - - - The invocation was not performed on the mock. - Expression to verify. - Message to show if verification fails. - - - - Verifies that a specific invocation matching the given expression was performed on the mock, - specifying a failure error message. Use in conjuntion with the default - . - - The invocation was not call the times specified by - . - Expression to verify. - The times a method is allowed to be called. - Message to show if verification fails. - - - - Verifies that a specific invocation matching the given expression was performed on the mock. Use - in conjuntion with the default . - - - This example assumes that the mock has been used, and later we want to verify that a given - invocation with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't call HasInventory. - mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50)); - - - The invocation was not performed on the mock. - Expression to verify. - Type of return value from the expression. - - - - Verifies that a specific invocation matching the given - expression was performed on the mock. Use in conjuntion - with the default . - - The invocation was not call the times specified by - . - Expression to verify. - The times a method is allowed to be called. - Type of return value from the expression. - - - - Verifies that a specific invocation matching the given - expression was performed on the mock, specifying a failure - error message. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't call HasInventory. - mock.Verify(warehouse => warehouse.HasInventory(TALISKER, 50), "When filling orders, inventory has to be checked"); - - - The invocation was not performed on the mock. - Expression to verify. - Message to show if verification fails. - Type of return value from the expression. - - - - Verifies that a specific invocation matching the given - expression was performed on the mock, specifying a failure - error message. - Use in conjuntion with the default . - - The invocation was not call the times specified by - . - Expression to verify. - The times a method is allowed to be called. - Message to show if verification fails. - Type of return value from the expression. - - - - Verifies that a property was read on the mock. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given property - was retrieved from it: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't retrieve the IsClosed property. - mock.VerifyGet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property was read on the mock. - Use in conjuntion with the default . - - The invocation was not call the times specified by - . - The times a method is allowed to be called. - Expression to verify. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property was read on the mock, specifying a failure - error message. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given property - was retrieved from it: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't retrieve the IsClosed property. - mock.VerifyGet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - Message to show if verification fails. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property was read on the mock, specifying a failure - error message. - Use in conjuntion with the default . - - The invocation was not call the times specified by - . - The times a method is allowed to be called. - Expression to verify. - Message to show if verification fails. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property was set on the mock. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given property - was set on it: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property. - mock.VerifySet(warehouse => warehouse.IsClosed = true); - - - The invocation was not performed on the mock. - Expression to verify. - - - - Verifies that a property was set on the mock. - Use in conjuntion with the default . - - The invocation was not call the times specified by - . - The times a method is allowed to be called. - Expression to verify. - - - - Verifies that a property was set on the mock, specifying - a failure message. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given property - was set on it: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property. - mock.VerifySet(warehouse => warehouse.IsClosed = true, "Warehouse should always be closed after the action"); - - - The invocation was not performed on the mock. - Expression to verify. - Message to show if verification fails. - - - - Verifies that a property was set on the mock, specifying - a failure message. - Use in conjuntion with the default . - - The invocation was not call the times specified by - . - The times a method is allowed to be called. - Expression to verify. - Message to show if verification fails. - - - - Adds an interface implementation to the mock, - allowing setups to be specified for it. - - - This method can only be called before the first use - of the mock property, at which - point the runtime type has already been generated - and no more interfaces can be added to it. - - Also, must be an - interface and not a class, which must be specified - when creating the mock instead. - - - The mock type - has already been generated by accessing the property. - The specified - is not an interface. - - The following example creates a mock for the main interface - and later adds to it to verify - it's called by the consumer code: - - var mock = new Mock<IProcessor>(); - mock.Setup(x => x.Execute("ping")); - - // add IDisposable interface - var disposable = mock.As<IDisposable>(); - disposable.Setup(d => d.Dispose()).Verifiable(); - - - Type of interface to cast the mock to. - - - - Raises the event referenced in using - the given and arguments. - - The arguments are - invalid for the target event invocation, or the is - not an event attach or detach expression. - - The following example shows how to raise a event: - - var mock = new Mock<IViewModel>(); - - mock.Raise(x => x.PropertyChanged -= null, new PropertyChangedEventArgs("Name")); - - - - This example shows how to invoke an event with a custom event arguments - class in a view that will cause its corresponding presenter to - react by changing its state: - - var mockView = new Mock<IOrdersView>(); - var presenter = new OrdersPresenter(mockView.Object); - - // Check that the presenter has no selection by default - Assert.Null(presenter.SelectedOrder); - - // Raise the event with a specific arguments data - mockView.Raise(v => v.SelectionChanged += null, new OrderEventArgs { Order = new Order("moq", 500) }); - - // Now the presenter reacted to the event, and we have a selected order - Assert.NotNull(presenter.SelectedOrder); - Assert.Equal("moq", presenter.SelectedOrder.ProductName); - - - - - - Exposes the mocked object instance. - - - - - Holds extensions that would cause conflicts with new APIs if available - in the core Moq namespace (even if hidden), such as the SetupSet legacy - members. - - - - - Specifies a setup on the mocked type for a call to - to a property setter. - - - If more than one setup is set for the same property setter, - the latest one wins and is the one that will be executed. - - Type of the property. Typically omitted as it can be inferred from the expression. - Type of the mock. - The target mock for the setup. - Lambda expression that specifies the property setter. - - - mock.SetupSet(x => x.Suspended); - - - - - - Specifies a setup on the mocked type for a call to - to a property setter with a specific value. - - - More than one setup can be set for the setter with - different values. - - Type of the property. Typically omitted as it can be inferred from the expression. - Type of the mock. - The target mock for the setup. - Lambda expression that specifies the property setter. - The value to be set for the property. - - - mock.SetupSet(x => x.Suspended, true); - - - - - - Verifies that a property has been set on the mock. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property. - mock.VerifySet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - The mock instance. - Mocked type. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property has been set on the mock to the given value. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property to true - mock.VerifySet(warehouse => warehouse.IsClosed, true); - - - The invocation was not performed on the mock. - Expression to verify. - The value that should have been set on the property. - The mock instance. - Mocked type. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property has been set on the mock, specifying a failure - error message. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property. - mock.VerifySet(warehouse => warehouse.IsClosed); - - - The invocation was not performed on the mock. - Expression to verify. - Message to show if verification fails. - The mock instance. - Mocked type. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Verifies that a property has been set on the mock to the given value, specifying a failure - error message. - Use in conjuntion with the default . - - - This example assumes that the mock has been used, - and later we want to verify that a given invocation - with specific parameters was performed: - - var mock = new Mock<IWarehouse>(); - // exercise mock - //... - // Will throw if the test code didn't set the IsClosed property to true - mock.VerifySet(warehouse => warehouse.IsClosed, true); - - - The invocation was not performed on the mock. - Expression to verify. - The value that should have been set on the property. - Message to show if verification fails. - The mock instance. - Mocked type. - Type of the property to verify. Typically omitted as it can - be inferred from the expression's return type. - - - - Provides partial evaluation of subtrees, whenever they can be evaluated locally. - - Matt Warren: http://blogs.msdn.com/mattwar - Documented by InSTEDD: http://www.instedd.org - - - - Performs evaluation and replacement of independent sub-trees - - The root of the expression tree. - A function that decides whether a given expression - node can be part of the local function. - A new tree with sub-trees evaluated and replaced. - - - - Performs evaluation and replacement of independent sub-trees - - The root of the expression tree. - A new tree with sub-trees evaluated and replaced. - - - - Evaluates and replaces sub-trees when first candidate is reached (top-down) - - - - - Performs bottom-up analysis to determine which nodes can possibly - be part of an evaluated sub-tree. - - - - - Marks a method as a matcher, which allows complete replacement - of the built-in class with your own argument - matching rules. - - - The argument matching is used to determine whether a concrete - invocation in the mock matches a given setup. This - matching mechanism is fully extensible. - - There are two parts of a matcher: the compiler matcher - and the runtime matcher. - - - Compiler matcher - Used to satisfy the compiler requirements for the - argument. Needs to be a method optionally receiving any arguments - you might need for the matching, but with a return type that - matches that of the argument. - - Let's say I want to match a lists of orders that contains - a particular one. I might create a compiler matcher like the following: - - - public static class Orders - { - [Matcher] - public static IEnumerable<Order> Contains(Order order) - { - return null; - } - } - - Now we can invoke this static method instead of an argument in an - invocation: - - var order = new Order { ... }; - var mock = new Mock<IRepository<Order>>(); - - mock.Setup(x => x.Save(Orders.Contains(order))) - .Throws<ArgumentException>(); - - Note that the return value from the compiler matcher is irrelevant. - This method will never be called, and is just used to satisfy the - compiler and to signal Moq that this is not a method that we want - to be invoked at runtime. - - - - Runtime matcher - - The runtime matcher is the one that will actually perform evaluation - when the test is run, and is defined by convention to have the - same signature as the compiler matcher, but where the return - value is the first argument to the call, which contains the - object received by the actual invocation at runtime: - - public static bool Contains(IEnumerable<Order> orders, Order order) - { - return orders.Contains(order); - } - - At runtime, the mocked method will be invoked with a specific - list of orders. This value will be passed to this runtime - matcher as the first argument, while the second argument is the - one specified in the setup (x.Save(Orders.Contains(order))). - - The boolean returned determines whether the given argument has been - matched. If all arguments to the expected method are matched, then - the setup matches and is evaluated. - - - - - - Using this extensible infrastructure, you can easily replace the entire - set of matchers with your own. You can also avoid the - typical (and annoying) lengthy expressions that result when you have - multiple arguments that use generics. - - - The following is the complete example explained above: - - public static class Orders - { - [Matcher] - public static IEnumerable<Order> Contains(Order order) - { - return null; - } - - public static bool Contains(IEnumerable<Order> orders, Order order) - { - return orders.Contains(order); - } - } - - And the concrete test using this matcher: - - var order = new Order { ... }; - var mock = new Mock<IRepository<Order>>(); - - mock.Setup(x => x.Save(Orders.Contains(order))) - .Throws<ArgumentException>(); - - // use mock, invoke Save, and have the matcher filter. - - - - - - Defines the Callback verb for property getter setups. - - - Mocked type. - Type of the property. - - - - Specifies a callback to invoke when the property is retrieved. - - Callback method to invoke. - - Invokes the given callback with the property value being set. - - mock.SetupGet(x => x.Suspended) - .Callback(() => called = true) - .Returns(true); - - - - - - Matcher to treat static functions as matchers. - - mock.Setup(x => x.StringMethod(A.MagicString())); - - pbulic static class A - { - [Matcher] - public static string MagicString() { return null; } - public static bool MagicString(string arg) - { - return arg == "magic"; - } - } - - Will success if: mock.Object.StringMethod("magic"); - and fail with any other call. - - - - - We need this non-generics base class so that - we can use from - generic code. - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Defines the Callback verb and overloads for callbacks on - setups that return a value. - - Mocked type. - Type of the return value of the setup. - - - - Specifies a callback to invoke when the method is called. - - Callback method to invoke. - - The following example specifies a callback to set a boolean - value that can be used later: - - bool called = false; - mock.Setup(x => x.Execute()) - .Callback(() => called = true) - .Returns(true); - - Note that in the case of value-returning methods, after the Callback - call you can still specify the return value. - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation argument value. - - Notice how the specific string argument is retrieved by simply declaring - it as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute(It.IsAny<string>())) - .Callback((string command) => Console.WriteLine(command)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>())) - .Callback((string arg1, string arg2) => Console.WriteLine(arg1 + arg2)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>())) - .Callback((string arg1, string arg2, int arg3) => Console.WriteLine(arg1 + arg2 + arg3)) - .Returns(true); - - - - - - Specifies a callback to invoke when the method is called that receives the original - arguments. - - Type of the first argument of the invoked method. - Type of the second argument of the invoked method. - Type of the third argument of the invoked method. - Type of the fourth argument of the invoked method. - Callback method to invoke. - - Invokes the given callback with the concrete invocation arguments values. - - Notice how the specific arguments are retrieved by simply declaring - them as part of the lambda expression for the callback: - - - mock.Setup(x => x.Execute( - It.IsAny<string>(), - It.IsAny<string>(), - It.IsAny<int>(), - It.IsAny<bool>())) - .Callback((string arg1, string arg2, int arg3, bool arg4) => Console.WriteLine(arg1 + arg2 + arg3 + arg4)) - .Returns(true); - - - - - - Implements the fluent API. - - - - - Defines the Never verb. - - - - - The expected invocation is never expected to happen. - - - - var mock = new Mock<ICommand>(); - mock.Setup(foo => foo.Execute("ping")) - .Never(); - - - - is always verified inmediately as - the invocations are performed, like strict mocks do - with unexpected invocations. - - - - - Implements the fluent API. - - - - - Implements the fluent API. - - - - - Defines the Returns verb for property get setups. - - Mocked type. - Type of the property. - - - - Specifies the value to return. - - The value to return, or . - - Return a true value from the property getter call: - - mock.SetupGet(x => x.Suspended) - .Returns(true); - - - - - - Specifies a function that will calculate the value to return for the property. - - The function that will calculate the return value. - - Return a calculated value when the property is retrieved: - - mock.SetupGet(x => x.Suspended) - .Returns(() => returnValues[0]); - - The lambda expression to retrieve the return value is lazy-executed, - meaning that its value may change depending on the moment the property - is retrieved and the value the returnValues array has at - that moment. - - - - - A that returns an empty default value - for non-mockeable types, and mocks for all other types (interfaces and - non-sealed classes) that can be mocked. - - - - - A that returns an empty default value - for invocations that do not have setups or return values, with loose mocks. - This is the default behavior for a mock. - - - - - Kind of range to use in a filter specified through - . - - - - - The range includes the to and - from values. - - - - - The range does not include the to and - from values. - - - - - Exception thrown by mocks when setups are not matched, - the mock is not properly setup, etc. - - - A distinct exception type is provided so that exceptions - thrown by the mock can be differentiated in tests that - expect other exceptions to be thrown (i.e. ArgumentException). - - Richer exception hierarchy/types are not provided as - tests typically should not catch or expect exceptions - from the mocks. These are typically the result of changes - in the tested class or its collaborators implementation, and - result in fixes in the mock setup so that they dissapear and - allow the test to pass. - - - - - - Supports the serialization infrastructure. - - Serialization information. - Streaming context. - - - - Supports the serialization infrastructure. - - Serialization information. - Streaming context. - - - - Made internal as it's of no use for - consumers, but it's important for - our own tests. - - - - - Used by the mock factory to accumulate verification - failures. - - - - - Supports the serialization infrastructure. - - - - - Options to customize the behavior of the mock. - - - - - Causes the mock to always throw - an exception for invocations that don't have a - corresponding setup. - - - - - Will never throw exceptions, returning default - values when necessary (null for reference types, - zero for value types or empty enumerables and arrays). - - - - - Default mock behavior, which equals . - - - - - Implements the fluent API. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Mock type has already been initialized by accessing its Object property. Adding interfaces must be done before that.. - - - - - Looks up a localized string similar to Value cannot be an empty string.. - - - - - Looks up a localized string similar to Can only add interfaces to the mock.. - - - - - Looks up a localized string similar to Can't set return value for void method {0}.. - - - - - Looks up a localized string similar to Constructor arguments cannot be passed for interface mocks.. - - - - - Looks up a localized string similar to A matching constructor for the given arguments was not found on the mocked type.. - - - - - Looks up a localized string similar to Expression {0} involves a field access, which is not supported. Use properties instead.. - - - - - Looks up a localized string similar to Type to mock must be an interface or an abstract or non-sealed class. . - - - - - Looks up a localized string similar to Cannot retrieve a mock with the given object type {0} as it's not the main type of the mock or any of its additional interfaces. - Please cast the argument to one of the supported types: {1}. - Remember that there's no generics covariance in the CLR, so your object must be one of these types in order for the call to succeed.. - - - - - Looks up a localized string similar to Member {0}.{1} does not exist.. - - - - - Looks up a localized string similar to Method {0}.{1} is public. Use strong-typed Expect overload instead: - mock.Setup(x => x.{1}()); - . - - - - - Looks up a localized string similar to {0} invocation failed with mock behavior {1}. - {2}. - - - - - Looks up a localized string similar to Expected only {0} calls to {1}.. - - - - - Looks up a localized string similar to Expected only one call to {0}.. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock less than {2} times: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was not performed on the mock: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock more than {3} times: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock more than a time: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock less or equal than {2} times or more or equal than {3} times: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock less than {2} times or more than {3} times: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was not performed on the mock {2} times: {1}. - - - - - Looks up a localized string similar to {0} - Invocation was performed on the mock: {1}. - - - - - Looks up a localized string similar to All invocations on the mock must have a corresponding setup.. - - - - - Looks up a localized string similar to Object instance was not created by Moq.. - - - - - Looks up a localized string similar to Property {0}.{1} does not exist.. - - - - - Looks up a localized string similar to Property {0}.{1} is write-only.. - - - - - Looks up a localized string similar to Property {0}.{1} is read-only.. - - - - - Looks up a localized string similar to Cannot raise a mocked event unless it has been associated (attached) to a concrete event in a mocked object.. - - - - - Looks up a localized string similar to Invocation needs to return a value and therefore must have a corresponding setup that provides it.. - - - - - Looks up a localized string similar to A lambda expression is expected as the argument to It.Is<T>.. - - - - - Looks up a localized string similar to Invocation {0} should not have been made.. - - - - - Looks up a localized string similar to Expression is not a method invocation: {0}. - - - - - Looks up a localized string similar to Expression is not a property access: {0}. - - - - - Looks up a localized string similar to Expression is not a property setter invocation.. - - - - - Looks up a localized string similar to Invalid setup on a non-overridable member: - {0}. - - - - - Looks up a localized string similar to Type {0} does not implement required interface {1}. - - - - - Looks up a localized string similar to Type {0} does not from required type {1}. - - - - - Looks up a localized string similar to To specify a setup for public property {0}.{1}, use the typed overloads, such as: - mock.Setup(x => x.{1}).Returns(value); - mock.SetupGet(x => x.{1}).Returns(value); //equivalent to previous one - mock.SetupSet(x => x.{1}).Callback(callbackDelegate); - . - - - - - Looks up a localized string similar to Expression {0} is not supported.. - - - - - Looks up a localized string similar to Only property accesses are supported in intermediate invocations on a setup. Unsupported expression {0}.. - - - - - Looks up a localized string similar to Expression contains intermediate property access {0}.{1} which is of type {2} and cannot be mocked. Unsupported expression {3}.. - - - - - Looks up a localized string similar to Setter expression cannot use argument matchers that receive parameters.. - - - - - Looks up a localized string similar to Member {0} is not supported for protected mocking.. - - - - - Looks up a localized string similar to Setter expression can only use static custom matchers.. - - - - - Looks up a localized string similar to To specify a setup for protected property {0}.{1}, use: - mock.Setup<{2}>(x => x.{1}).Returns(value); - mock.SetupGet(x => x.{1}).Returns(value); //equivalent to previous one - mock.SetupSet(x => x.{1}).Callback(callbackDelegate);. - - - - - Looks up a localized string similar to The following setups were not matched: - {0}. - - - - - Defines the number of invocations allowed by a mocked method. - - - - - Specifies that a mocked method should be invoked times as minimum. - - The minimun number of times. - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should be invoked one time as minimum. - - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should be invoked time as maximun. - - The maximun number of times. - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should be invoked one time as maximun. - - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should be invoked between and - times. - - The minimun number of times. - The maximun number of times. - The kind of range. See . - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should be invoked exactly times. - - The times that a method or property can be called. - An object defining the allowed number of invocations. - - - - Specifies that a mocked method should not be invoked. - - An object defining the allowed number of invocations. - - - - Determines the way default values are generated - calculated for loose mocks. - - - - - Default behavior, which generates empty values for - value types (i.e. default(int)), empty array and - enumerables, and nulls for all other reference types. - - - - - Whenever the default value generated by - is null, replaces this value with a mock (if the type - can be mocked). - - - For sealed classes, a null value will be generated. - - - - - Allows setups to be specified for protected members by using their - name as a string, rather than strong-typing them which is not possible - due to their visibility. - - - - - Specifies a setup for a void method invocation with the given - , optionally specifying - arguments for the method call. - - Name of the void method to be invoke. - Optional arguments for the invocation. If argument matchers are used, - remember to use rather than . - - - - Specifies a setup for an invocation on a property or a non void method with the given - , optionally specifying - arguments for the method call. - - Name of the method or property to be invoke. - Optional arguments for the invocation. If argument matchers are used, - remember to use rather than . - Return type of the method or property. - - - - Specifies a setup for an invocation on a property getter with the given - . - - Name of the property. - Type of the property. - - - - Specifies a setup for an invocation on a property setter with the given - . - - Name of the property. - Type of the property. - - - - Implements the actual interception and method invocation for - all mocks. - - - - - Get an eventInfo for a given event name. Search type ancestors depth first if necessary. - - Name of the event, with the set_ or get_ prefix already removed - - - - Given a type return all of its ancestors, both types and interfaces. - - The type to find immediate ancestors of - - - - Casts the expression to a lambda expression, removing - a cast if there's any. - - - - - Casts the body of the lambda expression to a . - - If the body is not a method call. - - - - Converts the body of the lambda expression into the referenced by it. - - - - - Checks whether the body of the lambda expression is a property access. - - - - - Checks whether the expression is a property access. - - - - - Checks whether the body of the lambda expression is a property indexer, which is true - when the expression is an whose - has - equal to . - - - - - Checks whether the expression is a property indexer, which is true - when the expression is an whose - has - equal to . - - - - - Creates an expression that casts the given expression to the - type. - - - - - TODO: remove this code when https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331583 - is fixed. - - - - - Implements the fluent API. - - - - - Defines the Callback verb for property setter setups. - - Type of the property. - - - - Specifies a callback to invoke when the property is set that receives the - property value being set. - - Callback method to invoke. - - Invokes the given callback with the property value being set. - - mock.SetupSet(x => x.Suspended) - .Callback((bool state) => Console.WriteLine(state)); - - - - - - Tracks the current mock and interception context. - - - - - - - - - - - - - Enables the Protected() method on , - allowing setups to be set for protected members by using their - name as a string, rather than strong-typing them which is not possible - due to their visibility. - - - - - Enable protected setups for the mock. - - Mocked object type. Typically omitted as it can be inferred from the mock instance. - The mock to set the protected setups on. - - - - Allows the specification of a matching condition for an - argument in a protected member setup, rather than a specific - argument value. "ItExpr" refers to the argument being matched. - - - Use this variant of argument matching instead of - for protected setups. - This class allows the setup to match a method invocation - with an arbitrary value, with a value in a specified range, or - even one that matches a given predicate, or null. - - - - - Matches a null value of the given type. - - - Required for protected mocks as the null value cannot be used - directly as it prevents proper method overload selection. - - - - // Throws an exception for a call to Remove with a null string value. - mock.Protected() - .Setup("Remove", ItExpr.IsNull<string>()) - .Throws(new InvalidOperationException()); - - - Type of the value. - - - - Matches any value of the given type. - - - Typically used when the actual argument value for a method - call is not relevant. - - - - // Throws an exception for a call to Remove with any string value. - mock.Protected() - .Setup("Remove", ItExpr.IsAny<string>()) - .Throws(new InvalidOperationException()); - - - Type of the value. - - - - Matches any value that satisfies the given predicate. - - Type of the argument to check. - The predicate used to match the method argument. - - Allows the specification of a predicate to perform matching - of method call arguments. - - - This example shows how to return the value 1 whenever the argument to the - Do method is an even number. - - mock.Protected() - .Setup("Do", ItExpr.Is<int>(i => i % 2 == 0)) - .Returns(1); - - This example shows how to throw an exception if the argument to the - method is a negative number: - - mock.Protected() - .Setup("GetUser", ItExpr.Is<int>(i => i < 0)) - .Throws(new ArgumentException()); - - - - - - Matches any value that is in the range specified. - - Type of the argument to check. - The lower bound of the range. - The upper bound of the range. - The kind of range. See . - - The following example shows how to expect a method call - with an integer argument within the 0..100 range. - - mock.Protected() - .Setup("HasInventory", - ItExpr.IsAny<string>(), - ItExpr.IsInRange(0, 100, Range.Inclusive)) - .Returns(false); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression: - - mock.Protected() - .Setup("Check", ItExpr.IsRegex("[a-z]+")) - .Returns(1); - - - - - - Matches a string argument if it matches the given regular expression pattern. - - The pattern to use to match the string argument value. - The options used to interpret the pattern. - - The following example shows how to expect a call to a method where the - string argument matches the given regular expression, in a case insensitive way: - - mock.Protected() - .Setup("Check", ItExpr.IsRegex("[a-z]+", RegexOptions.IgnoreCase)) - .Returns(1); - - - - - - Checks an argument to ensure it isn't null. - - The argument value to check. - The name of the argument. - - - - Checks a string argument to ensure it isn't null or empty. - - The argument value to check. - The name of the argument. - - - - Checks an argument to ensure it is in the specified range including the edges. - - Type of the argument to check, it must be an type. - - The argument value to check. - The minimun allowed value for the argument. - The maximun allowed value for the argument. - The name of the argument. - - - - Checks an argument to ensure it is in the specified range excluding the edges. - - Type of the argument to check, it must be an type. - - The argument value to check. - The minimun allowed value for the argument. - The maximun allowed value for the argument. - The name of the argument. - - - diff --git a/Samples/Lib/System.Web.Abstractions.dll b/Samples/Lib/System.Web.Abstractions.dll deleted file mode 100644 index 317242e723fb2db3e16792d11c106eff0192f6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84800 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/%9p0u}*bE>E}s;F(Mpn0VH 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 diff --git a/Samples/Lib/System.Web.Mvc.xml b/Samples/Lib/System.Web.Mvc.xml deleted file mode 100644 index a5885c243..000000000 --- a/Samples/Lib/System.Web.Mvc.xml +++ /dev/null @@ -1,3136 +0,0 @@ - - - - System.Web.Mvc - - - - - Class used to render a view using an returned by a . - - - - - Base class used to supply the model to the view and then render the view to the response. - - - - - Encapsulates the result of an action method and is used to perform a - framework level operation on the action method's behalf. - - - - - Enables processing of the result of an action method by a custom type that inherits from . - - - - - - When called by the action invoker, renders the view to the response. - - - - - - When overridden, returns the used to render the view. - - - - - - - Gets or sets the for this result. - - - - - Gets or sets the that is rendered to the response. - - - - - Gets or sets the view data for this result. - - - - - Gets or sets the view engines () associated with this result. - - - - - The name of the view to be rendered. - - - - - Searches the registered view engines and returns the used to render the view. - - - - - - - The name of the master view (such as a master page or template) to use when rendering the view. - - - - - Defines the contract for an action invoker, used to invoke an action in response to an http request. - - - - - Invokes the specified action. - - - The name of the action. - True if the action was found, otherwise false. - - - - Renders the specified partial view. - - - The name of the partial view - - - - Renders the specified partial view replacing its ViewData property with the - supplied ViewDataDictionary. - - - The name of the partial view - - - - Renders the specified partial view passing in a copy of the current - ViewDataDictionary, but - with the Model property set to the specified model. - - - The name of the partial view - - - - Renders the specified partial view, replacing the partial view's ViewData property with the - supplied ViewDataDictionary. The Model - property of the view data is set to the specified model. - - - The name of the partial view - The model for the partial view - The view data for the partial view - - - - Sends binary content to the response via a . - - - - - Base class used to send binary content to the response - - - - - The content type to use for the response. - - - - - If specified, sets the content-disposition header so that a file download dialog appears in the browesr with the specified file name. - - - - - Initializes a new instance of - - The stream to send to the response - The content type to use for the response - - - - Gets the stream which will be sent to the response. - - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - The host name for the URL - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route. - An object containing the html attributes for the element. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route.. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. - An object containing the html attributes for the element. - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - The host name for the URL - - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the url to the specified action such that when the action link is clicked, - the action is invoked asynchronously via javascript. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. - An object containing the html attributes for the element. - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - The host name for the URL - - An object providing options for the asynchronous request - An anchor tag - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - An object containing the parameters for a route. - An object containing the html attributes for the element. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the action - The name of the controller - An object containing the parameters for a route - An object containing the html attributes for the element - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the route to used to obtain the form post url. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. - An object providing options for the asynchronous request - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. The form is submitted asynchronously using javascript. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. - An object containing the html attributes for the element. - An object providing options for the asynchronous request - An instance. - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - An object containing the parameters for a route. - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - An object containing the parameters for a route. - An object providing options for the asynchronous request - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object providing options for the asynchronous request - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object providing options for the asynchronous request - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object providing options for the asynchronous request - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. - An object providing options for the asynchronous request - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. - An object providing options for the asynchronous request - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values such that when the link is clicked, - a request is made to the virtual path asynchronously via javascript. - - - The inner text of the anchor tag - The name of the route to used to obtain the form post url. - The protocol for the URL such as "http" or "https" - The host name for the URL - The url fragment name (also known as anchor name) - An object containing the parameters for a route. - An object providing options for the asynchronous request - An object containing the html attributes for the element - An anchor tag - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to The current request for action '{0}' on controller type '{1}' is ambiguous between the following action methods:{2}. - - - - - Looks up a localized string similar to {0} on type {1}. - - - - - Looks up a localized string similar to No route in the route table matches the supplied values.. - - - - - Looks up a localized string similar to A required anti-forgery token was not supplied or was invalid.. - - - - - Looks up a localized string similar to The value '{0}' is outside the valid range of the enumeration type '{1}'.. - - - - - Looks up a localized string similar to Value cannot be null or empty.. - - - - - Looks up a localized string similar to The partial view '{0}' could not be found. The following locations were searched:{1}. - - - - - Looks up a localized string similar to The property '{0}' cannot be null or empty.. - - - - - Looks up a localized string similar to The value '{0}' is invalid.. - - - - - Looks up a localized string similar to The view '{0}' or its master could not be found. The following locations were searched:{1}. - - - - - Looks up a localized string similar to A public action method '{0}' could not be found on controller '{1}'.. - - - - - Looks up a localized string similar to The model of type '{0}' was not successfully updated.. - - - - - Looks up a localized string similar to There was an error creating the IControllerFactory '{0}'. Check that it has a public parameterless constructor.. - - - - - Looks up a localized string similar to The IControllerFactory '{0}' did not return a controller for a controller named '{1}'.. - - - - - Looks up a localized string similar to The controller factory type '{0}' must implement the IControllerFactory interface.. - - - - - Looks up a localized string similar to The controller name '{0}' is ambiguous between the following types:{1}. - - - - - Looks up a localized string similar to An error occurred while creating a controller of type '{0}'. If the controller doesn't have a controller factory, ensure that it has a parameterless public constructor.. - - - - - Looks up a localized string similar to The controller for path '{0}' could not be found or it does not implement IController.. - - - - - Looks up a localized string similar to The controller type '{0}' must implement IController.. - - - - - Looks up a localized string similar to A value is required.. - - - - - Looks up a localized string similar to The total number of ticks for the TimeSpan must be greater than 0.. - - - - - Looks up a localized string similar to The type '{0}' does not inherit from Exception.. - - - - - Looks up a localized string similar to Order must be greater than or equal to -1.. - - - - - Looks up a localized string similar to There is no ViewData item with the key '{0}' of type '{1}'.. - - - - - Looks up a localized string similar to The value must be greater than or equal to zero.. - - - - - Looks up a localized string similar to The ViewData item with the key '{0}' is of type '{1}' but needs to be of type '{2}'.. - - - - - Looks up a localized string similar to There was an error creating the IModelBinder '{0}'. Check that it has a public parameterless constructor.. - - - - - Looks up a localized string similar to The type '{0}' does not implement the IModelBinder interface.. - - - - - Looks up a localized string similar to The type '{0}' contains multiple attributes inheriting from CustomModelBinderAttribute.. - - - - - Looks up a localized string similar to Cannot create a descriptor for instance method '{0}' on type '{1}' since the type does not subclass ControllerBase.. - - - - - Looks up a localized string similar to Cannot call action method '{0}' on controller '{1}' since the parameter '{2}' is passed by reference.. - - - - - Looks up a localized string similar to Cannot call action method '{0}' on controller '{1}' since it is a generic method.. - - - - - Looks up a localized string similar to The parameters dictionary contains a null entry for parameter '{0}' of non-nullable type '{1}' for method '{2}' in '{3}'. To make a parameter optional its type should be either a reference type or a Nullable type.. - - - - - Looks up a localized string similar to The parameters dictionary does not contain an entry for parameter '{0}' of type '{1}' for method '{2}' in '{3}'. The dictionary must contain an entry for each parameter, even parameters with null values.. - - - - - Looks up a localized string similar to The parameters dictionary contains an invalid entry for parameter '{0}' for method '{1}' in '{2}'. The dictionary contains a value of type '{3}', but the parameter requires a value of type '{4}'.. - - - - - Looks up a localized string similar to The parameter '{0}' on method '{1}' contains multiple attributes inheriting from CustomModelBinderAttribute.. - - - - - Looks up a localized string similar to The SessionStateTempDataProvider requires SessionState to be enabled.. - - - - - Looks up a localized string similar to The parameter conversion from type '{0}' to type '{1}' failed. See the inner exception for more information.. - - - - - Looks up a localized string similar to The parameter conversion from type '{0}' to type '{1}' failed because no TypeConverter can convert between these types.. - - - - - Looks up a localized string similar to The model item passed into the dictionary is of type '{0}' but this dictionary requires a model item of type '{1}'.. - - - - - Looks up a localized string similar to A ViewMasterPage can only be used with content pages that derive from ViewPage or ViewPage<TViewItem>.. - - - - - Looks up a localized string similar to The ViewUserControl '{0}' cannot find an IViewDataContainer. The ViewUserControl must be inside a ViewPage, ViewMasterPage, or another ViewUserControl.. - - - - - Looks up a localized string similar to A ViewUserControl can only be used inside pages that derive from ViewPage or ViewPage<TViewItem>.. - - - - - Looks up a localized string similar to A master name cannot be specified when the view is a ViewUserControl.. - - - - - Looks up a localized string similar to The view found at '{0}' could not be created.. - - - - - Looks up a localized string similar to The view at '{0}' must derive from ViewPage, ViewPage<TViewData>, ViewUserControl, or ViewUserControl<TViewData>.. - - - - - Instantiates and initializes the Ajax, Html, and Url properties. - - - - - Renders the view page to the response. - - - - - - Returns an containing methods useful for AJAX scenarios. - - - - - Returns an containing methods useful for rendering HTML elements. - - - - - Convenience property used to access the Model property of the - - - - - Returns a which renders the supplied content to the response. - - The content to write to the response - - - - - Returns a which renders the supplied content to the response. - - The content to write to the response - The content type - - - - - Returns a which renders the supplied content to the response. - - The content to write to the response - The content type - The content encoding - - - - - Returns a which writes the fileContents to the Response. - - The binary content to send to the response. - The content type. - - - - - Returns a which writes the fileContents to the Response. - - The binary content to send to the response. - The content type. - If specified, sets the content-disposition header so that a file download dialog appears in the browesr with the specified file name - - - - - Returns a which writes the fileStream to the Response. - - The stream to send to the response. - The content type - - - - - Returns a which writes the fileStream to the Response. - - The stream to send to the response. - The content type - If specified, sets the content-disposition header so that a file download dialog appears in the browesr with the specified file name - - - - - Returns a which writes the file to the Response. - - The path to the file to send to the response. - The content type - - - - - Returns a which writes the file to the Response. - - The path to the file to send to the response. - The content type - If specified, sets the content-disposition header so that a file download dialog appears in the browesr with the specified file name - - - - - Method called whenever a request matches this controller, but not an action of this controller. - - The name of the attempted action - - - - Returns a which writes a script to the response - which is then executed on the client. - - The JavaScript code to run on the client - - - - - Returns a which serializes the specified object to - JSON and writes the JSON to the response. - - The JavaScript code to run on the client - - - - - Returns a which serializes the specified object to - JSON and writes the JSON to the response. - - The JavaScript code to run on the client - The content type - - - - - Returns a which serializes the specified object to - JSON and writes the JSON to the response. - - The JavaScript code to run on the client - The content type - The content encoding - - - - - Method called before the action method is invoked. - - Contains information about the current request and action - - - - Method called after the action method is invoked. - - Contains information about the current request and action - - - - Method called when authorization occurs. - - Contains information about the current request and action - - - - Method called when an unhandled exception occurs in the action. - - Contains information about the current request and action - - - - Method called after the action result returned by an action method is executed. - - Contains information about the current request and action result - - - - Method called before the action result returned by an action method is executed. - - Contains information about the current request and action result - - - - Returns a which renders a partial view to the response. - - - - - - Returns a which renders a partial view to the response. - - The model rendered by the partial view - - - - Returns a which renders a partial view to the response. - - The name of the partial view - - - - Returns a which renders a partial view to the response. - - The name of the partial view - The model rendered by the partial view - - - - Returns a which redirects to the specified URL - - The URL to redirect to. - - - - - Returns a which redirects to the specified action - - The name of the action. - - - - - Returns a which redirects to the specified action - - The name of the action. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - - - - Returns a which redirects to the specified action - - The name of the action. - An object containing the parameters for a route. - - - - - Returns a which redirects to the specified action - - The name of the action. - The name of the controller - - - - - Returns a which redirects to the specified action - - The name of the action. - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - - - - Returns a which redirects to the specified action - - The name of the action. - The name of the controller - An object containing the parameters for a route. - - - - - Returns a which redirects to the specified route - - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - - - - Returns a which redirects to the specified route - - An object containing the parameters for a route. - - - - - Returns a which redirects to the specified route - - The name of the route - - - - - Returns a which redirects to the specified route - - The name of the route - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - - - - - Returns a which redirects to the specified route - - The name of the route - An object containing the parameters for a route. - - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - List of properties of the model to update - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - List of properties of the model to update - Prefix to use when looking up values in the value provider - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - List of properties to explicitly exclude from update. These are excluded even if they are listed in the includeProperties list - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - List of properties of the model to update - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - Returns true if successful. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - List of properties to explicitly exclude from update. These are excluded even if they are listed in the includeProperties list - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - List of properties of the model to update - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - List of properties to explicitly exclude from update. These are excluded even if they are listed in the includeProperties list - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - List of properties of the model to update - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - A dictionary of values used to update the model - - - - Updates the specified model instance using values from the Controller's current ValueProvider. - - The type of the model object - The model instance to update. - Prefix to use when looking up values in the value provider - List of properties of the model to update - List of properties to explicitly exclude from update. These are excluded even if they are listed in the includeProperties list - A dictionary of values used to update the model - - - - Returns a which renders a view to the response. - - - - - - Returns a which renders a view to the response. - - The model rendered by the view - - - - - Returns a which renders a view to the response. - - The name of the partial view - - - - - Returns a which renders a view to the response. - - The name of the view - The name of the master view - - - - - Returns a which renders a view to the response. - - The name of the view - The model rendered by the view - - - - - Returns a which renders a view to the response. - - The name of the view - The name of the master view - The model rendered by the view - - - - - Returns a which renders the specified to the response. - - The view rendered to the response - - - - - Returns a which renders the specified to the response. - - The view rendered to the response - The model rendered by the view - - - - - Gets the for the controller. - - - - - Encapsulates all HTTP-specific information about an individual HTTP request. - - - - - Gets the object containing the - state of the model and model binding validation. - - - - - Gets the object for the current HTTP request. - - - - - Gets the object for the current HTTP request. - - - - - Returns the for the current request. - - - - - Gets the object that provides methods used in processing Web requests. - - - - - Gets the object for the current HTTP request. - - - - - Gets the object used to store data for the next request. - - - - - Gets the object used to generate URLs using Routing. - - - - - Gets the security information for the current HTTP request. - - - - - Class containing convenience methods for use in rendering HTML for use in Ajax scenarios within a view. - - - - - Gets the collection of routes. - - - - - Gets the current . - - - - - Gets the current . - - - - - Gets the current . - - - - - Encapsulates information related to rendering a view. - - - - - Encapsulates information about an HTTP request that matches a defined Route and Controller. - - - - - Gets data associated with this request which only lives for one request. - - - - - Gets the to render. - - - - - Gets the view data supplied to the view. - - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - An object containing the parameters for a route - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - The name of the controller - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path to the specified action. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the url to the specified action. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - The host name for the URL - An anchor tag - - - - Returns an anchor tag containing the url to the specified action. - - The inner text of the anchor tag - The name of the action - The name of the controller - An object containing the parameters for a route - An object containing the html attributes for the element - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - The host name for the URL - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - An object containing the parameters for a route - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the virtual path for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - An object containing the parameters for a route - An object containing the html attributes for the element - An anchor tag - - - - Returns an anchor tag containing the url for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - The host name for the URL - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An anchor tag - - - - Returns an anchor tag containing the url for the specified route values. - - The inner text of the anchor tag - The name of the route used to return a virtual path. - The host name for the URL - The protocol for the URL such as "http" or "https" - The url fragment name (also known as anchor name) - An object containing the parameters for a route - An object containing the html attributes for the element - An anchor tag - - - - Represents the state of an attempt to bind a posted form to an action method including validation information. - - - - - Initializes a new instance of the class - - - - - Initializes a new instance of the class with the values copied - from the the specified ModelStateDictionary. - - - - - Adds the specified to the errors collection for the - associated with the specified key. - - - - - - - Adds the specified error message to the errors collection for the - associated with the specified key. - - - - - - - Returns true if there are any associated or prefixed with the specified key. - - - - - - - Copies the values from the specified into this - dictionary, overwriting existing values in cases where the keys are the same. - - - - - - Sets the value for the specified key using the specified - - - - - - - Gets the number of key/value pairs that are in the collection. - - - - - Returns true if there are no errors, otherwise false. - - - - - Gets a collection that contains the keys in the dictionary. - - - - - Gets or sets the value that is associated with the specified key. - - - - - - - Gets a collection that contains the values in the dictionary. - - - - - Initializes a new instance of the class. - - An object that contains information about the current request and the defined route it matched. - - - - Initializes a new instance of the class. - - An object that contains information about the current request and the defined route it matched. - A collection of Route instances. - - - - Returns a virtual path for the specified route values. - - The name of the action - The virtual path to the action - - - - Returns a virtual path URL for the specified route values. - - The name of the action - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The virtual path to the action - - - - Returns a virtual path for the specified route values. - - The name of the action - An object containing the parameters for a route. - The virtual path to the action - - - - Returns a virtual path for the specified route values. - - The name of the action - The name of the controller - The virtual path to the action - - - - Returns a virtual path for the specified route values. - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The virtual path to the action - - - - Returns a virtual path for the specified route values. - - The name of the action - The name of the controller - An object containing the parameters for a route. - The protocol for the URL such as "http" or "https" - The virtual path to the action - - - - Returns a fully qualified URL for the specified route values. - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The protocol for the URL such as "http" or "https" - The URL to the action - - - - Returns a fully qualified URL for the specified route values. - - The name of the action - The name of the controller - An object containing the parameters for a route - The protocol for the URL such as "http" or "https" - The host name for the URL - The URL to the action - - - - Converts a virtual path to an application absolute path. - - - If the specified does not start with the tilde [~] character, - then this method returns the specified unchanged. - - The virtual path to the content. - - - - - Encodes a URL string - - The text to encode - An encoded string - - - - Returns a virtual path for the specified route values. - - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - A virtual path - - - - Returns a virtual path for the specified route values. - - An object containing the parameters for a route. - A virtual path - - - - Returns a virtual path for the specified route values. - - The name of the route used to return a virtual path. - A virtual path - - - - Returns a virtual path for the specified route values. - - The name of the route used to return a virtual path. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - A virtual path - - - - Returns a virtual path for the specified route values. - - The name of the route used to return a virtual path. - An object containing the parameters for a route. - A virtual path - - - - Returns a fully qualified URL for the specified route values. - - The name of the route used to return a virtual path. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The protocol for the URL such as "http" or "https" - A virtual path - - - - Returns a fully qualified URL for the specified route values. - - The name of the route used to generate the virtual path - The name of the controller - An object containing the parameters for a route - The protocol for the URL such as "http" or "https" - The host name for the URL - The virtual path to the action - - - - Encapsulates information about an HTTP request that matches a defined route. - - - - - A collection containing the routes registered for the application. - - - - - Class containing convenience methods for use in rendering HTML in a view. - - - - - Returns the string for a hidden input containing a token used to prevent CSRF attacks. - - - - - - Returns the string for a hidden input containing a token used to prevent CSRF attacks. - - A salt to use when generating the token - - - - - Method used to encode HTML attribute values. - - The string to encode - - - - - Method used to encode HTML attribute values. - - The object to encode - - - - - Method used to encode HTML. - - The string to encode - - - - - Method used to encode HTML. - - The object to encode - - - - - Convenience method used to generate a link using Routing to determine the virtual path. - - The current - The collection of routes. - The text displayed in the link - The name of the route, if any. - The name of the action. - The name of the controller. - The route values - The html attributes - - - - - Convenience method used to generate a link using Routing to determine the URL. - - The current - The collection of routes. - The text displayed in the link - The name of the route, if any. - The name of the action. - The name of the controller. - The route values - The html attributes - The protocol to use, such as http or https. - The hostname for the URL - The fragment to append to the end of the URL - - - - - Convenience method which converts the value into a string. - - - - - - - Convenience method for converting the value to a string - - - - - - - Gets or sets the string which replaces the dot character in the ID of html elements generated by HTML helpers. - - - - - Gets the collection of routes. - - - - - Gets the current . - - - - - Gets the current . - - - - - Gets the current . - - - - - A collection of instances. - - - - - Adds an to the - - - - - - Adds an error message to the - - - - - - When applied to an action method, specifies which HTTP verbs the method will respond to. - - - - - Gets the list of HTTP verbs the action method will respond to. - - - - - Represents an error that occured while attempting to bind a request to the arguments of an action method. - - - - - Initializes a new instance of the class with the specified exception. - - - For security reasons, the exception's ErrorMessage property is not set to the - Exception's Message property by default. - - - - - - Initializes a new instance of the class with the specified exception and error message. - - - - - - - Initializes a new instance of the class with the specified error message. - - - - - - The , if any, that occurred while binding to the model. - - - - - - - - - - Represents the result of an attempt to bind a supplied value (from a form post, query string, etc...) to - a property of an argument to an action method or to the argument itself. - - - - - Initializes a new instance of the class with the specified - raw value, attempted value, and . - - - - - - - - Converts the value encapsulated by this result to the specified type. - - The target type - - - - - Converts the value encapsulated by this result to the specified type. - - The target type - The culture to use in the conversion. - - - - - The RawValue converted to a string for display purposes. - - - - - The raw value supplied by the value provider. - - - - - Sends binary content to the response. - - - - - Initializes a new instance of with the specified file contents and content type. - - The byte array to send to the response - The content type to use for the response - - - - The binary content to send to the response. - - - - - Class used by the Html helpers to build HTML tags. - - - - - Encapsulates the state of model binding to a property of an argument, or the argument itself, of an action method. - - - - - Returns a which encapsulates the value which was attempted to be bound by model binding. - - - - - Returns a containing any errors that occurred during model binding. - - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - An object containing the html attributes for the element - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - The number of columns - The number of rows - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An textarea tag - - - - Returns a textarea tag suitable for entering multiline input. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - The number of columns - The number of rows - An object containing the html attributes for the element - An textarea tag - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - An object containing the parameters for a route - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the action - The name of the controller - An object containing the parameters for a route - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - An object containing the parameters for a route - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route - The HTTP method for the form post, either Get or Post - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route. The parameters are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax. - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An instance. - - - - Writes a begin form tag to the response while returning an - instance. Can be used in a using block in which case it renders the end form tag at the end of the - using block. - - - The name of the route to used to obtain the form post url. - An object containing the parameters for a route - The HTTP method for the form post, either Get or Post - An object containing the html attributes for the element - An instance. - - - - Renders the end form tag to the response. This provides an alternative way to end the form - to using a using block with and . - - - - - - Sends the contents of a file to the response. - - - - - Initializes an instance of with the specified file name and content type. - - The name of the file to send to the response. - The content type of the response. - - - - The path to the file which is sent to the response. - - - - - Represents a result that doesn't do anything, like a controller action returning null. - - - This follows a pattern known as the Null Object pattern - - - - - Defines the contract for temp data providers which store data viewed on the next request. - - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - An empty string if valid, otherwise a span with an error message - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An empty string if valid, otherwise a span with an error message - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - The message to display if the specified field is in error - An empty string if valid, otherwise a span with an error message - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - The message to display if the specified field is in error - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An empty string if valid, otherwise a span with an error message - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - An object containing the html attributes for the element - An empty string if valid, otherwise a span with an error message - - - - Displays a validation message if the specified field contains an error in the ModelState. - - - The name of the property or model object being validated - The message to display if the specified field is in error - An object containing the html attributes for the element - An empty string if valid, otherwise a span with an error message - - - - Returns an unordered list [ul] of validation messages within the ModelState. - - - - - - - Returns an unordered list [ul] of validation messages within the ModelState. - - - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - - - - Returns an unordered list [ul] of validation messages within the ModelState. - - - An object containing the html attributes for the element - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - Provides the text for a default empty valued option, if it is not null. - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - Provides the text for a default empty valued option, if it is not null. - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - Provides the text for a default empty valued option, if it is not null. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - An object containing the html attributes for the element. - - - - - Returns a select tag used to select a single option from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - Provides the text for a default empty valued option, if it is not null. - An object containing the html attributes for the element. - - - - - Returns a select tag used to select a multiple options from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - - - - - Returns a select tag used to select a multiple options from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - - - - - Returns a select tag used to select a multiple options from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - - - - Returns a select tag used to select a multiple options from a set of possible choices. - - - The name of the form field and used as a key to lookup possible options. If ViewData[name] implements IEnumerable of . - The enumeration of SelectListItem instances used to populate the drop down. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - - - - - Returns the input tag for a checkbox. - - - The form field name - An input tag with the type set to "checkbox" - - - - Returns the input tag for a checkbox. - - - The form field name - A boolean indicating whether or not the checkbox is checked - An input tag with the type set to "checkbox" - - - - Returns the input tag for a checkbox. - - - The form field name - A boolean indicating whether or not the checkbox is checked - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "checkbox" - - - - Returns the input tag for a checkbox. - - - The form field name - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "checkbox" - - - - Returns the input tag for a checkbox. - - - The form field name - An object containing the html attributes for the element - An input tag with the type set to "checkbox" - - - - Returns the input tag for a checkbox. - - - The form field name - A boolean indicating whether or not the checkbox is checked - An object containing the html attributes for the element - An input tag with the type set to "checkbox" - - - - Returns a hidden input tag. - - - The form field name and ViewData key used to lookup the value. - An input tag with the type set to "hidden" - - - - Returns a hidden input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the hidden input. If null, looks at the ViewData and then ModelStatefor the value. - An input tag with the type set to "hidden" - - - - Returns a hidden input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the hidden input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "hidden" - - - - Returns a hidden input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the hidden input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element - An input tag with the type set to "hidden" - - - - Returns a password tag. - - - The form field name and ViewData key used to lookup the value. - An input tag with the type set to "password" - - - - Returns a password tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An input tag with the type set to "password" - - - - Returns a password tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "password" - - - - Returns a password tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element - An input tag with the type set to "password" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - An input tag with the type set to "radio" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "radio" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - An object containing the html attributes for the element - An input tag with the type set to "radio" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - Whether or not the radio button is checked - An input tag with the type set to "radio" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - Whether or not the radio button is checked - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "radio" - - - - Returns a radio button tag used to present one possible value, out of a range, for a form field specified by the name. - - - The form field name and ViewData key used to lookup the current value. - If checked, the value of the radio button submitted when the form is posted. If the value in ViewData or ModelState matches this value, the radio button is checked. - Whether or not the radio button is checked - An object containing the html attributes for the element - An input tag with the type set to "radio" - - - - Returns a text input tag. - - - The form field name and ViewData key used to lookup the value. - An input tag with the type set to "text" - - - - Returns a text input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An input tag with the type set to "text" - - - - Returns a text input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element. The attributes are retrieved via reflection by examining the properties of the object. Typically created using object initializer syntax - An input tag with the type set to "text" - - - - Returns a text input tag. - - - The form field name and ViewData key used to lookup the value. - The value of the input. If null, looks at the ViewData and then ModelStatefor the value. - An object containing the html attributes for the element - An input tag with the type set to "text" - - - - Initializes a new instance of the - with the specified . - - - - - - Attribute used to provide details on how model binding to a parameter should occur. - - - - - A comma delimited black list of property names for which binding is not allowed. - - - - - A comma delimited white list of property names for which binding is allowed. - - - - - Gets or sets the prefix to use when binding to an action argument or model property. - - - - diff --git a/Samples/Lib/System.Web.Routing.dll b/Samples/Lib/System.Web.Routing.dll deleted file mode 100644 index 93f0ff81bf4a2c3ed8602c12fd02add89a07493f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68416 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 diff --git a/Samples/Lib/nunit.framework.dll b/Samples/Lib/nunit.framework.dll deleted file mode 100644 index 2a0a0aa3266b37dbaaa6c418500da203a2fa67eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77824 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 diff --git a/Samples/ProductsMvcSample/ProductsMvcSample.sln b/Samples/ProductsMvcSample/ProductsMvcSample.sln deleted file mode 100644 index dbed5c301..000000000 --- a/Samples/ProductsMvcSample/ProductsMvcSample.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{6F1F9F8E-B88A-426E-9408-CB39D2052BFA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{6CA54C7A-DAB8-42E4-8A20-C1329194FF36}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductsMvcSample", "Source\ProductsMvcSample\ProductsMvcSample.csproj", "{766F76DC-B97D-41FE-A6D8-F039EAB8533D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductsMvcSample.Tests", "UnitTests\ProductsMvcSample.Tests\ProductsMvcSample.Tests.csproj", "{0BB61A7C-2791-45EC-A7A5-E2F525CAFA72}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {766F76DC-B97D-41FE-A6D8-F039EAB8533D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {766F76DC-B97D-41FE-A6D8-F039EAB8533D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {766F76DC-B97D-41FE-A6D8-F039EAB8533D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {766F76DC-B97D-41FE-A6D8-F039EAB8533D}.Release|Any CPU.Build.0 = Release|Any CPU - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {766F76DC-B97D-41FE-A6D8-F039EAB8533D} = {6F1F9F8E-B88A-426E-9408-CB39D2052BFA} - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72} = {6CA54C7A-DAB8-42E4-8A20-C1329194FF36} - EndGlobalSection -EndGlobal diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/HomeController.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/HomeController.cs deleted file mode 100644 index 88025b6ee..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/HomeController.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Web.Mvc; - -namespace ProductsMvcSample.Controllers -{ - public class HomeController : Controller - { - public ViewResult Index() - { - return View("Welcome"); - } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/ProductsController.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/ProductsController.cs deleted file mode 100644 index 1e2c0d56c..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Controllers/ProductsController.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Web.Mvc; -using ProductsMvcSample.Models; -using ProductsMvcSample.Services; - -namespace ProductsMvcSample.Controllers -{ - public class ProductsController : Controller - { - IProductsCatalogService catalogService; - - public ProductsController() - : this(new ProductsCatalogService()) - { - - } - - public ProductsController(IProductsCatalogService catalogService) - { - this.catalogService = catalogService; - } - - public ActionResult Index() - { - return View(); - } - - public ActionResult Category(int id) - { - var model = new ProductsListViewData(); - model.CategoryId = id; - model.CategoryName = catalogService.GetCategoryName(id); - model.Products.AddRange(catalogService.GetProducts(id) ?? new Product[0]); - return View("ProductsList", model); - } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx deleted file mode 100644 index 65b715e11..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx +++ /dev/null @@ -1,3 +0,0 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ProductsMvcSample.Default" %> - -<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%> diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx.cs deleted file mode 100644 index 8c90403af..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Default.aspx.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -namespace ProductsMvcSample -{ - public partial class Default : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) - { - Response.Redirect("~/Home"); - } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax deleted file mode 100644 index 9ed5fbca5..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Codebehind="Global.asax.cs" Inherits="ProductsMvcSample.Global" Language="C#" %> diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax.cs deleted file mode 100644 index 3c9744975..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Global.asax.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Web.Mvc; -using System.Web.Routing; - -namespace ProductsMvcSample -{ - public class Global : System.Web.HttpApplication - { - - protected void Application_Start(object sender, EventArgs e) - { - // Note: Change Url= to Url="[controller].mvc/[action]/[id]" to enable - // automatic support on IIS6 - RegisterRoutes(RouteTable.Routes); - } - - public static void RegisterRoutes(RouteCollection routes) - { - routes.MapRoute( - "Default", // Route name - "{controller}/{action}/{id}", // URL with parameters - new { controller = "Home", action = "Index", id = "" }, // Parameter defaults - new { controller = @"[^\.]*" } // Parameter constraints - ); - - routes.MapRoute( - "Root", // Route name - "Default.aspx", // URL with parameters - new { controller = "Home", action = "Index", id = "" } // Parameter defaults - ); - } - } -} \ No newline at end of file diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/Product.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/Product.cs deleted file mode 100644 index cb0ccc8a7..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/Product.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace ProductsMvcSample.Models -{ - public class Product - { - public int Id { get; set; } - public string Name { get; set; } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/ProductsListViewData.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/ProductsListViewData.cs deleted file mode 100644 index d99369e1e..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Models/ProductsListViewData.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections.Generic; - -namespace ProductsMvcSample.Models -{ - public class ProductsListViewData - { - public ProductsListViewData () - { - Products = new List(); - } - - public int CategoryId { get; set; } - public string CategoryName { get; set; } - public List Products { get; private set; } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/ProductsMvcSample.csproj b/Samples/ProductsMvcSample/Source/ProductsMvcSample/ProductsMvcSample.csproj deleted file mode 100644 index 4e435deba..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/ProductsMvcSample.csproj +++ /dev/null @@ -1,144 +0,0 @@ - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {766F76DC-B97D-41FE-A6D8-F039EAB8533D} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - ProductsMvcSample - ProductsMvcSample - v3.5 - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - False - ..\..\..\Lib\Microsoft.Web.Mvc.dll - - - False - ..\..\..\Lib\Moq.dll - - - - - 3.5 - - - False - ..\..\..\Lib\System.Web.Abstractions.dll - 3.5 - - - False - - - False - ..\..\..\Lib\System.Web.Mvc.dll - - - False - ..\..\..\Lib\System.Web.Routing.dll - 3.5 - - - 3.5 - - - - - - - - - - - - - - - - - - Default.aspx - ASPXCodeBehind - - - Global.asax - - - - - - - - Welcome.aspx - ASPXCodeBehind - - - ProductsList.aspx - ASPXCodeBehind - - - Site.Master - ASPXCodeBehind - - - - - - - - - - - - - - - - - - - - False - True - 64701 - / - - - False - False - - - False - - - - - diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Properties/AssemblyInfo.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Properties/AssemblyInfo.cs deleted file mode 100644 index ab77be42f..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ProductsMvcSample")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("MSIT")] -[assembly: AssemblyProduct("ProductsMvcSample")] -[assembly: AssemblyCopyright("Copyright © MSIT 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/IProductsCatalogService.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/IProductsCatalogService.cs deleted file mode 100644 index 798a130e0..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/IProductsCatalogService.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; -using ProductsMvcSample.Models; - -namespace ProductsMvcSample.Services -{ - public interface IProductsCatalogService - { - string GetCategoryName(int categoryId); - IEnumerable GetProducts(int categoryId); - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/ProductsCatalogService.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/ProductsCatalogService.cs deleted file mode 100644 index e622f3734..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Services/ProductsCatalogService.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Collections.Generic; -using ProductsMvcSample.Models; - -namespace ProductsMvcSample.Services -{ - public class ProductsCatalogService : IProductsCatalogService - { - public string GetCategoryName(int categoryId) - { - if (categoryId == 1) - return "Beverage"; - if (categoryId == 2) - return "Condiments"; - return null; - } - - public IEnumerable GetProducts(int categoryId) - { - if (categoryId == 1) - { - yield return new Product { Id = 1, Name = "Merlot" }; - yield return new Product { Id = 2, Name = "Spirits" }; - yield return new Product { Id = 3, Name = "Beer" }; - yield return new Product { Id = 4, Name = "Cabernet" }; - yield return new Product { Id = 5, Name = "Chardonnay" }; - } - if (categoryId == 2) - { - yield return new Product { Id = 10, Name = "Aniseed Syrup" }; - yield return new Product { Id = 11, Name = "Chef Anton's Cajun Seasoning" }; - yield return new Product { Id = 12, Name = "Chef Anton's Gumbo Mix" }; - yield return new Product { Id = 13, Name = "Gula Malacca" }; - yield return new Product { Id = 14, Name = "Vegie-spread" }; - } - yield break; - } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx deleted file mode 100644 index d7ca3d408..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx +++ /dev/null @@ -1,11 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Welcome.aspx.cs" Inherits="ProductsMvcSample.Views.Home.Welcome" Title="Untitled Page" %> -<%@ Import Namespace="ProductsMvcSample.Controllers" %> - - - - -
    -
  • <%= Html.ActionLink(c => c.Category(1), "View Category 1") %>
  • -
  • <%= Html.ActionLink(c => c.Category(2), "View Category 2") %>
  • -
-
diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx.cs deleted file mode 100644 index 7c2cd3419..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Home/Welcome.aspx.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Web.Mvc; - -namespace ProductsMvcSample.Views.Home -{ - public partial class Welcome : ViewPage - { - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx deleted file mode 100644 index ead0519fc..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx +++ /dev/null @@ -1,15 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="ProductsList.aspx.cs" Inherits="ProductsMvcSample.Views.Products.ProductsList" Title="Untitled Page" %> - - - - -

<%= ViewData.Model.CategoryName %>

- -
    -<% foreach (var product in ViewData.Model.Products) - { %> -
  • <%= product.Name %>
  • -<% } %> -
- -
diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx.cs deleted file mode 100644 index c685655e9..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Products/ProductsList.aspx.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Web.Mvc; -using ProductsMvcSample.Models; - -namespace ProductsMvcSample.Views.Products -{ - public partial class ProductsList : ViewPage - { - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - Title = "Products of " + ViewData.Model.CategoryName; - } - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master deleted file mode 100644 index c85635c85..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master +++ /dev/null @@ -1,19 +0,0 @@ -<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="ProductsMvcSample.Views.Shared.Site" %> - - - - - - Untitled Page - - - - -
Products Catalog Sample (Tested by MoQ).
-
- - - -
- - diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master.cs b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master.cs deleted file mode 100644 index fb23e9f60..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Views/Shared/Site.Master.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Web.Mvc; - -namespace ProductsMvcSample.Views.Shared -{ - public partial class Site : ViewMasterPage - { - } -} diff --git a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Web.config b/Samples/ProductsMvcSample/Source/ProductsMvcSample/Web.config deleted file mode 100644 index 24c50ff1d..000000000 --- a/Samples/ProductsMvcSample/Source/ProductsMvcSample/Web.config +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - -
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Controllers/ProductsControllerFixture.cs b/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Controllers/ProductsControllerFixture.cs deleted file mode 100644 index aa85be1d3..000000000 --- a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Controllers/ProductsControllerFixture.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; -using System.Web.Mvc; -using Moq; -using ProductsMvcSample.Models; -using ProductsMvcSample.Controllers; -using ProductsMvcSample.Services; - -namespace ProductsMvcSample.Tests.Controllers -{ - [TestFixture] - public class ProductsControllerFixture - { - [Test] - public void CategoryRendersProductsListWithProductsListViewData() - { - // Arrange mocks - var catalogService = new Mock(); - - // Target object - var controller = new ProductsController(catalogService.Object); - - // Act - var result = controller.Category(2); - - // Assert - Assert.IsNotNull(result); - Assert.IsTrue(result is ViewResult); - var viewResult = (ViewResult)result; - Assert.IsNotNull(viewResult.ViewData.Model); - Assert.That(viewResult.ViewData.Model is ProductsListViewData); - } - - [Test] - public void CategoryRendersRendersViewDataWithCategoryInfo() - { - // Arrange mocks - var catalogService = new Mock(); - catalogService - .Setup(c => c.GetCategoryName(2)) - .Returns("FooCategory"); - - // Target object - var controller = new ProductsController(catalogService.Object); - - // Act - var result = controller.Category(2); - - // Assert - // We don't repeat the assertions from the previous test here - var viewData = ((ViewResult)result).ViewData.Model as ProductsListViewData; - Assert.IsNotNull(viewData); - Assert.AreEqual(2, viewData.CategoryId); - Assert.AreEqual("FooCategory", viewData.CategoryName); - } - - [Test] - public void CategoryRendersRendersViewDataWithProdcutsListing() - { - // Arrange mocks - var catalogService = new Mock(); - catalogService - .Setup(c => c.GetCategoryName(2)) - .Returns("FooCategory"); - catalogService.Setup(c => c - .GetProducts(2)) - .Returns(new List - { - new Product { Id = 4 , Name = "Foo" }, - new Product { Id = 7 , Name = "Bar" } - }); - - // Target object - var controller = new ProductsController(catalogService.Object); - - // Act - var result = controller.Category(2); - - // Assert - var viewData = ((ViewResult)result).ViewData.Model as ProductsListViewData; - Assert.IsNotNull(viewData); - Assert.AreEqual(2, viewData.Products.Count); - Assert.AreEqual(4, viewData.Products[0].Id); - Assert.AreEqual("Bar", viewData.Products[1].Name); - } - } -} diff --git a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/MvcTestHelper.cs b/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/MvcTestHelper.cs deleted file mode 100644 index ac6e25478..000000000 --- a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/MvcTestHelper.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Web.Mvc; -using System.Web; -using Moq; -using System.Linq.Expressions; -using NUnit.Framework; -using System.ComponentModel; -using System.Web.Routing; - -namespace ProductsMvcSample.Tests -{ - public static class MvcTestHelper - { - public static void VerifyCallsTo(this RouteData route, Expression> action) - where T : IController - { - Assert.IsNotNull(route); - - Assert.IsTrue(route.Values.ContainsKey("controller"), "Controller's name doesn't exists."); - Assert.AreEqual(typeof(T).Name, route.Values["controller"].ToString() + "Controller", "Controller's name."); - - var methodCall = action.Body as MethodCallExpression; - if (methodCall == null) - throw new NotSupportedException("Action body must be a MethodCallExpression."); - - Assert.IsTrue(route.Values.ContainsKey("action"), "Action's name doesn't exists."); - Assert.AreEqual(methodCall.Method.Name, route.Values["action"], "Action's name."); - - foreach (var parameter in methodCall.Method.GetParameters()) - { - Assert.IsTrue(route.Values.ContainsKey(parameter.Name), String.Format("Argument for '{0}' doesn't exists.", parameter.Name)); - - object expectedValue; - var argumentExpr = methodCall.Arguments[parameter.Position] as ConstantExpression; - if (argumentExpr != null) - expectedValue = argumentExpr.Value; - else - throw new NotSupportedException("Arguments must be ConstantExpression."); - object actualValue = TypeDescriptor.GetConverter(expectedValue.GetType()).ConvertFromString(route.Values[parameter.Name].ToString()); - Assert.AreEqual(expectedValue, actualValue, String.Format("Argument for '{0}'.", parameter.Name)); - } - } - } -} diff --git a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/ProductsMvcSample.Tests.csproj b/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/ProductsMvcSample.Tests.csproj deleted file mode 100644 index dbec457c6..000000000 --- a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/ProductsMvcSample.Tests.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {0BB61A7C-2791-45EC-A7A5-E2F525CAFA72} - Library - Properties - ProductsMvcSample.Tests - ProductsMvcSample.Tests - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\Lib\Moq.dll - - - False - ..\..\..\Lib\nunit.framework.dll - - - - 3.5 - - - - False - ..\..\..\Lib\System.Web.Abstractions.dll - 3.5 - - - False - - - False - ..\..\..\Lib\System.Web.Mvc.dll - - - False - ..\..\..\Lib\System.Web.Routing.dll - 3.5 - - - 3.5 - - - - - - - - Code - - - - Code - - - - - {766F76DC-B97D-41FE-A6D8-F039EAB8533D} - ProductsMvcSample - - - - - \ No newline at end of file diff --git a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Properties/AssemblyInfo.cs b/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 89e71474d..000000000 --- a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ProductsMvcSample.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProductsMvcSample.Tests")] -[assembly: AssemblyCopyright("Copyright © 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("de0092f2-f2f0-49b9-bf7e-cfbcb331cccc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Routes/ProductsRoutesFixture.cs b/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Routes/ProductsRoutesFixture.cs deleted file mode 100644 index 834ca39af..000000000 --- a/Samples/ProductsMvcSample/UnitTests/ProductsMvcSample.Tests/Routes/ProductsRoutesFixture.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework; -using System.Web.Mvc; -using ProductsMvcSample.Controllers; -using System.Web.Routing; -using Moq; -using System.Web; - -namespace ProductsMvcSample.Tests.Routes -{ - [TestFixture] - public class ProductsRoutesFixture - { - [Test] - public void ShouldAccept_Products_Category_CategoryId() - { - // Arrange - var routes = new RouteCollection(); - Global.RegisterRoutes(routes); - var context = new Mock { DefaultValue = DefaultValue.Mock }; - context - .Setup(c => c.Request.AppRelativeCurrentExecutionFilePath) - .Returns("~/Products/Category/2"); - - // Act - var routeData = routes.GetRouteData(context.Object); - - // Assert - Assert.AreEqual("Products", routeData.Values["controller"], "Default controller is HomeController"); - Assert.AreEqual("Category", routeData.Values["action"], "Default action is Index"); - Assert.AreEqual("2", routeData.Values["id"], "Default Id is empty string"); - - routeData.VerifyCallsTo(c => c.Category(2)); - } - } -} diff --git a/Samples/StoreSample/Source/Models/Category.cs b/Samples/StoreSample/Source/Models/Category.cs deleted file mode 100644 index 0e7f7637c..000000000 --- a/Samples/StoreSample/Source/Models/Category.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Store -{ - public class Category - { - public int Id { get; set; } - public string Name { get; set; } - } -} diff --git a/Samples/StoreSample/Source/Models/Order.cs b/Samples/StoreSample/Source/Models/Order.cs deleted file mode 100644 index ea3877b17..000000000 --- a/Samples/StoreSample/Source/Models/Order.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Store -{ - public class Order - { - public Product Product { get; set; } - public int Quantity { get; set; } - public bool Filled { get; set; } - } -} diff --git a/Samples/StoreSample/Source/Models/Product.cs b/Samples/StoreSample/Source/Models/Product.cs deleted file mode 100644 index 36e5a42ef..000000000 --- a/Samples/StoreSample/Source/Models/Product.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Store -{ - public class Product - { - public int Id { get; set; } - public string Name { get; set; } - } -} diff --git a/Samples/StoreSample/Source/Presenters/ProductsPresenter.cs b/Samples/StoreSample/Source/Presenters/ProductsPresenter.cs deleted file mode 100644 index 93980fe65..000000000 --- a/Samples/StoreSample/Source/Presenters/ProductsPresenter.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; - -namespace Store -{ - public class ProductsPresenter - { - ICatalogService catalog; - IProductsView view; - - public ProductsPresenter(ICatalogService catalog, IProductsView view) - { - this.catalog = catalog; - this.view = view; - view.SetCategories(catalog.GetCategories()); - view.CategorySelected += (sender, args) => SelectCategory(args.Category); - } - - void SelectCategory(Category category) - { - view.SetProducts(catalog.GetProducts(category.Id)); - } - - public void PlaceOrder(Order order) - { - if (catalog.HasInventory(order.Product.Id, order.Quantity)) - { - try - { - catalog.Remove(order.Product.Id, order.Quantity); - order.Filled = true; - } - catch (InvalidOperationException) - { - // LOG? - } - } - } - } -} diff --git a/Samples/StoreSample/Source/Properties/AssemblyInfo.cs b/Samples/StoreSample/Source/Properties/AssemblyInfo.cs deleted file mode 100644 index f8b7f0031..000000000 --- a/Samples/StoreSample/Source/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Source")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("Source")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d42053e4-3f65-401f-ae9f-31d242d3561f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/StoreSample/Source/Services/CatalogService.cs b/Samples/StoreSample/Source/Services/CatalogService.cs deleted file mode 100644 index 44e7c9750..000000000 --- a/Samples/StoreSample/Source/Services/CatalogService.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -namespace Store -{ - public class CatalogService - { - } -} diff --git a/Samples/StoreSample/Source/Services/ICatalogService.cs b/Samples/StoreSample/Source/Services/ICatalogService.cs deleted file mode 100644 index d8ae34a7c..000000000 --- a/Samples/StoreSample/Source/Services/ICatalogService.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Store -{ - public interface ICatalogService - { - IEnumerable GetCategories(); - IEnumerable GetProducts(int categoryId); - bool HasInventory(int productId, int quantity); - void Remove(int productId, int quantity); - } -} diff --git a/Samples/StoreSample/Source/Store.csproj b/Samples/StoreSample/Source/Store.csproj deleted file mode 100644 index f7bc6f375..000000000 --- a/Samples/StoreSample/Source/Store.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {BDF061BD-AD85-4BE6-9661-C24504896633} - Library - Properties - Store - Store - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - 3.5 - - - - - - - - - - - - - - - - diff --git a/Samples/StoreSample/Source/Views/CategoryEventArgs.cs b/Samples/StoreSample/Source/Views/CategoryEventArgs.cs deleted file mode 100644 index e57ca22f4..000000000 --- a/Samples/StoreSample/Source/Views/CategoryEventArgs.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Store -{ - public class CategoryEventArgs : EventArgs - { - public CategoryEventArgs(Category category) - { - this.Category = category; - } - - public Category Category { get; private set; } - } -} diff --git a/Samples/StoreSample/Source/Views/IProductsView.cs b/Samples/StoreSample/Source/Views/IProductsView.cs deleted file mode 100644 index 1c464ab5b..000000000 --- a/Samples/StoreSample/Source/Views/IProductsView.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Store -{ - public interface IProductsView - { - event EventHandler CategorySelected; - void SetCategories(IEnumerable categories); - void SetProducts(IEnumerable products); - } -} diff --git a/Samples/StoreSample/StoreSample.sln b/Samples/StoreSample/StoreSample.sln deleted file mode 100644 index 021f439e9..000000000 --- a/Samples/StoreSample/StoreSample.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Store", "Source\Store.csproj", "{BDF061BD-AD85-4BE6-9661-C24504896633}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Store.Tests", "UnitTests\Store.Tests.csproj", "{ACA76E67-0611-4415-927D-64FFB9C462A5}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{EAB21A99-0B6F-431E-B2D2-2D98FA1ECDDD}" - ProjectSection(SolutionItems) = preProject - Stories.txt = Stories.txt - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BDF061BD-AD85-4BE6-9661-C24504896633}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BDF061BD-AD85-4BE6-9661-C24504896633}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BDF061BD-AD85-4BE6-9661-C24504896633}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BDF061BD-AD85-4BE6-9661-C24504896633}.Release|Any CPU.Build.0 = Release|Any CPU - {ACA76E67-0611-4415-927D-64FFB9C462A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ACA76E67-0611-4415-927D-64FFB9C462A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ACA76E67-0611-4415-927D-64FFB9C462A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ACA76E67-0611-4415-927D-64FFB9C462A5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Samples/StoreSample/Stories.txt b/Samples/StoreSample/Stories.txt deleted file mode 100644 index 1ff2b4359..000000000 --- a/Samples/StoreSample/Stories.txt +++ /dev/null @@ -1,10 +0,0 @@ -Products - -1 - User sees a list of all available categories -2 - Upon selection of a category, a list of corresponding products is shown -3 - Upon selection of a product, the user can place an order by specifying the quantity. - a) Order will only be filled if there's enough inventory in stock. - b) If there's enough stock, the corresponding quantity of the product - will be removed from the stock. - c) If stock throws while removing the products, no error is raised and the - order remains unfilled so that the user can retry the operation. \ No newline at end of file diff --git a/Samples/StoreSample/UnitTests/ProductsPresenterFixturecs.cs b/Samples/StoreSample/UnitTests/ProductsPresenterFixturecs.cs deleted file mode 100644 index 54deff40b..000000000 --- a/Samples/StoreSample/UnitTests/ProductsPresenterFixturecs.cs +++ /dev/null @@ -1,122 +0,0 @@ -using System.Collections.Generic; -using Moq; -using NUnit.Framework; -using System; - -namespace Store.Tests -{ - [TestFixture] - public class ProductsPresenterFixturecs - { - [Test] - public void ShouldSetViewCategories() - { - // Arrange - var catalog = new Mock(); - var view = new Mock(); - - // Act - var presenter = new ProductsPresenter(catalog.Object, view.Object); - - // Assert - view.Verify(v => v.SetCategories(It.IsAny>())); - } - - - [Test] - public void ShouldCategorySelectionSetProducts() - { - // Arrange - var catalog = new Mock(); - var view = new Mock(); - var presenter = new ProductsPresenter(catalog.Object, view.Object); - - // Act - view.Raise( - v => v.CategorySelected += null, - new CategoryEventArgs(new Category { Id = 1 })); - - // Assert - view.Verify(v => v.SetProducts(It.IsAny>())); - } - - [Test] - public void ShouldPlaceOrderIfEnoughInventory() - { - // Arrange - var catalog = new Mock(); - var view = new Mock(); - var presenter = new ProductsPresenter(catalog.Object, view.Object); - var order = new Order - { - Product = new Product { Id = 1 }, - Quantity = 5 - }; - - catalog - .Setup(c => c.HasInventory(1, 5)) - .Returns(true); - - // Act - presenter.PlaceOrder(order); - - // Assert - Assert.IsTrue(order.Filled); - catalog.Verify(c => c.HasInventory(1, 5)); - } - - [Test] - public void ShouldNotPlaceOrderIfNotEnoughInventory() - { - // Arrange - var catalog = new Mock(); - var view = new Mock(); - var presenter = new ProductsPresenter(catalog.Object, view.Object); - var order = new Order - { - Product = new Product { Id = 1 }, - Quantity = 5 - }; - - catalog - .Setup(c => c.HasInventory(1, 5)) - .Returns(false); - - // Act - presenter.PlaceOrder(order); - - // Assert - Assert.IsFalse(order.Filled); - catalog.Verify(c => c.HasInventory(1, 5)); - } - - [Test] - public void ShouldNotPlaceOrderIfFailsToRemove() - { - // Arrange - var catalog = new Mock(); - var view = new Mock(); - var presenter = new ProductsPresenter(catalog.Object, view.Object); - var order = new Order - { - Product = new Product { Id = 1 }, - Quantity = 5 - }; - - catalog - .Setup(c => c.HasInventory(1, 5)) - .Returns(true); - catalog - .Setup(c => c.Remove(1, 5)) - .Throws(); - - // Act - presenter.PlaceOrder(order); - - // Assert - Assert.IsFalse(order.Filled); - catalog.Verify(c => c.HasInventory(1, 5)); - catalog.Verify(c => c.Remove(1, 5)); - } - } -} diff --git a/Samples/StoreSample/UnitTests/Properties/AssemblyInfo.cs b/Samples/StoreSample/UnitTests/Properties/AssemblyInfo.cs deleted file mode 100644 index b3fedb0df..000000000 --- a/Samples/StoreSample/UnitTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("UnitTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("UnitTests")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ad32ee97-abac-45b0-94b0-6a987e8e22a6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/StoreSample/UnitTests/Store.Tests.csproj b/Samples/StoreSample/UnitTests/Store.Tests.csproj deleted file mode 100644 index f9c39109b..000000000 --- a/Samples/StoreSample/UnitTests/Store.Tests.csproj +++ /dev/null @@ -1,65 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {ACA76E67-0611-4415-927D-64FFB9C462A5} - Library - Properties - Store.Tests - Store.Tests - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\Lib\Moq.dll - - - False - ..\..\Lib\nunit.framework.dll - - - - 3.5 - - - - - - - - - {BDF061BD-AD85-4BE6-9661-C24504896633} - Store - - - - - \ No newline at end of file From 7f9a77cab9f9e6d8787636f598f8a74396bc8299 Mon Sep 17 00:00:00 2001 From: stakx Date: Sun, 22 Jul 2018 01:47:55 +0200 Subject: [PATCH 3/3] Remove stale Pex test project --- tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj | 68 --------------- tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln | 34 -------- tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs | 36 -------- .../Pex/ShouldExpectCallWithArgument.cs | 84 ------------------- ...ouldExpectCallWithReferenceLazyEvaluate.cs | 39 --------- .../Pex/ShouldExpectReturnPropertyValue.cs | 36 -------- .../Pex/ShouldMatchPredicateArgument.cs | 40 --------- 7 files changed, 337 deletions(-) delete mode 100644 tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj delete mode 100644 tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln delete mode 100644 tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs delete mode 100644 tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs delete mode 100644 tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs delete mode 100644 tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs delete mode 100644 tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs diff --git a/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj deleted file mode 100644 index 5996fa31b..000000000 --- a/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.csproj +++ /dev/null @@ -1,68 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {662DD403-EFFD-4804-A29D-2E1F80D92835} - Library - Properties - Moq.UnitTests.Pex - Moq.UnitTests.Pex - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - C:\Program Files (x86)\Microsoft Pex\bin\Microsoft.Pex.Framework.dll - - - - - 3.5 - - - - - - - - - - - - {1C91AC30-5977-4BE5-BA67-8EB186C03514} - Moq - - - - - - - - \ No newline at end of file diff --git a/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln b/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln deleted file mode 100644 index 065fbcc7e..000000000 --- a/tests/Moq.Tests/Pex/Moq.UnitTests.Pex.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Moq.UnitTests.Pex", "Moq.UnitTests.Pex.csproj", "{662DD403-EFFD-4804-A29D-2E1F80D92835}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Moq", "..\..\..\src\Moq\Moq.csproj", "{1C91AC30-5977-4BE5-BA67-8EB186C03514}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Debug|Any CPU.Build.0 = Debug|Any CPU - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Debug|x86.ActiveCfg = Debug|Any CPU - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Release|Any CPU.ActiveCfg = Release|Any CPU - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Release|Any CPU.Build.0 = Release|Any CPU - {662DD403-EFFD-4804-A29D-2E1F80D92835}.Release|x86.ActiveCfg = Release|Any CPU - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Debug|x86.ActiveCfg = Debug|x86 - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Debug|x86.Build.0 = Debug|x86 - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Release|Any CPU.Build.0 = Release|Any CPU - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Release|x86.ActiveCfg = Release|x86 - {1C91AC30-5977-4BE5-BA67-8EB186C03514}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs b/tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs deleted file mode 100644 index 8c499bc0c..000000000 --- a/tests/Moq.Tests/Pex/ShouldExpectCallReturn.cs +++ /dev/null @@ -1,36 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Pex.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Moq; -using Microsoft.Pex.Framework.Suppression; -using Microsoft.Pex.Framework.Choices; - -namespace Mock.Tests -{ - [TestClass] - [PexClass(Suite = "checkin")] - public partial class ShouldExpectCallReturn - { - [TestMethod] - [PexMethod(MaxBranches = int.MaxValue)] - public void Moq() - { - // ShouldExpectCallReturn - var mock = new Mock(); - var clone = new object(); - - mock.Setup(x => x.Clone()).Returns(clone); - - Assert.AreSame(clone, mock.Object.Clone()); - } - } -} diff --git a/tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs b/tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs deleted file mode 100644 index 05b6bbe3e..000000000 --- a/tests/Moq.Tests/Pex/ShouldExpectCallWithArgument.cs +++ /dev/null @@ -1,84 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Pex.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Moq; -using Microsoft.Pex.Framework.Suppression; -using Microsoft.Pex.Framework.Instrumentation; -using System.Diagnostics; -using Microsoft.Pex.Framework.Choices; -using Microsoft.Pex.Framework.Validation; - -[assembly: PexInstrumentAssembly("Moq")] -[assembly: PexInstrumentAssembly("DynamicProxyGenAssembly2")] - -namespace Mock.Tests -{ - [TestClass] - [PexClass(Suite = "checkin")] - public partial class ShouldExpectCallWithArgument - { - public interface IFoo - { - int DoInt(int i); - } - - [TestMethod] - [PexMethod(MaxBranches = int.MaxValue)] - public void Moq() - { - // ShouldExpectCallWithArgument - var mock = new Mock(); - mock.Setup(x => x.DoInt(1)).Returns(11); - mock.Setup(x => x.DoInt(2)).Returns(22); - - Assert.AreEqual(11, mock.Object.DoInt(1)); - Assert.AreEqual(22, mock.Object.DoInt(2)); - } - - [PexMethod(MaxBranches = int.MaxValue)] - [PexExpectedGoals] - public void MoqWithParameterValue(int y) - { - // ShouldExpectCallWithArgument - var mock = new Mock(); - mock.Setup(x => x.DoInt(1)).Returns(y); - - if (mock.Object.DoInt(1) == 4242) - throw new PexGoalException(); - } - - [PexMethod(MaxBranches = int.MaxValue)] - [PexExpectedGoals] - public void MoqWithParameterDelegate(int y) - { - // ShouldExpectCallWithArgument - var mock = new Mock(); - mock.Setup(x => x.DoInt(1)).Returns(() => y); - - if (mock.Object.DoInt(1) == 4242) - throw new PexGoalException(); - } - - [PexMethod(MaxBranches = int.MaxValue)] - [PexExpectedGoals] - [PexIgnore("TODO")] - public void MoqWithSymbolicArgumentParameterValue(int y, int z) - { - // ShouldExpectCallWithArgument - var mock = new Mock(); - mock.Setup(x => x.DoInt(y)).Returns(() => z); - - if (mock.Object.DoInt(2323) == 4242) - throw new PexGoalException(); - } - } -} diff --git a/tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs b/tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs deleted file mode 100644 index 03808e70f..000000000 --- a/tests/Moq.Tests/Pex/ShouldExpectCallWithReferenceLazyEvaluate.cs +++ /dev/null @@ -1,39 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Pex.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Moq; -using Microsoft.Pex.Framework.Suppression; -using Microsoft.Pex.Framework.Choices; - -namespace Mock.Tests -{ - [TestClass] - [PexClass(Suite = "checkin")] - public partial class ShouldExpectCallWithReferenceLazyEvaluate - { - public interface IFoo - { - int Parse(string value); - } - - [PexMethod(MaxBranches = int.MaxValue)] - public void Moq() - { - int a = 25; - var mock = new Mock(); - mock.Setup(x => x.Parse(a.ToString())).Returns(() => a); - - a = 10; - Assert.AreEqual(10, mock.Object.Parse("10")); - } - } -} diff --git a/tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs b/tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs deleted file mode 100644 index fbda74f95..000000000 --- a/tests/Moq.Tests/Pex/ShouldExpectReturnPropertyValue.cs +++ /dev/null @@ -1,36 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Pex.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Moq; -using Microsoft.Pex.Framework.Suppression; -using Microsoft.Pex.Framework.Choices; - -namespace Mock.Tests -{ - [TestClass] - [PexClass(Suite = "checkin")] - public partial class ShouldExpectReturnPropertyValue - { - public interface IFoo - { - int ValueProperty { get; } - } - - [PexMethod(MaxBranches = int.MaxValue)] - public void Moq() - { - var mock = new Mock(); - mock.Setup(x => x.ValueProperty).Returns(25); - Assert.AreEqual(25, mock.Object.ValueProperty); - } - } -} diff --git a/tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs b/tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs deleted file mode 100644 index 639416cea..000000000 --- a/tests/Moq.Tests/Pex/ShouldMatchPredicateArgument.cs +++ /dev/null @@ -1,40 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Microsoft.Pex.Framework; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Moq; -using Microsoft.Pex.Framework.Suppression; - -namespace Mock.Tests -{ - [TestClass] - [PexClass(Suite = "checkin")] - public partial class ShouldMatchPredicateArgument - { - public interface IFoo - { - int Duplicate(int i); - } - - [TestMethod] - [PexMethod(MaxBranches = int.MaxValue)] - public void Moq() - { - var mock = new Mock(); - - mock.Setup(x => x.Duplicate(It.Is(value => value < 5 && value > 0))) - .Returns(() => 1); - - Assert.AreEqual(1, mock.Object.Duplicate(3)); - Assert.AreEqual(0, mock.Object.Duplicate(0)); - } - } -}