The Trunk: SUnit-pre.115.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: SUnit-pre.115.mcz

commits-2
Patrick Rein uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-pre.115.mcz

==================== Summary ====================

Name: SUnit-pre.115
Author: pre
Time: 30 April 2019, 7:18:47.687906 pm
UUID: 447c12dd-c108-094a-9327-ef47edc61497
Ancestors: SUnit-cypress.1, SUnit-fn.114

Recategorizes test methods in SUnit to create a good example to start from.

=============== Diff against SUnit-fn.114 ===============

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>setUp (in category 'running') -----
- ----- Method: ClassFactoryForTestCaseTest>>setUp (in category 'setUp-tearDown') -----
  setUp
  super setUp.
  factory := ClassFactoryForTestCase new!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>tearDown (in category 'running') -----
- ----- Method: ClassFactoryForTestCaseTest>>tearDown (in category 'setUp-tearDown') -----
  tearDown
  super tearDown.
  factory cleanUp!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testClassCreationInDifferentCategories (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testClassCreationInDifferentCategories (in category 'testing') -----
  testClassCreationInDifferentCategories
  | firstThreeClasses lastTwoClasses |
  3 timesRepeat: [
  factory newSubclassOf: Object instanceVariableNames: '' classVariableNames: '' category: #One].
  firstThreeClasses := factory createdClasses copy.
  2 timesRepeat: [
  factory newSubclassOf: Object instanceVariableNames: '' classVariableNames: '' category: #Two].
  lastTwoClasses := factory createdClasses copyWithoutAll: firstThreeClasses.
  self assert: (firstThreeClasses allSatisfy: [:class| class category = (factory packageName, '-', #One) asSymbol]).
  self assert: (lastTwoClasses allSatisfy: [:class| class category = (factory packageName, '-', #Two) asSymbol]).!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testClassFastCreationInDifferentCategories (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testClassFastCreationInDifferentCategories (in category 'testing') -----
  testClassFastCreationInDifferentCategories
  | firstThreeClasses lastTwoClasses |
  3 timesRepeat: [
  factory newClassInCategory: #One].
  firstThreeClasses := factory createdClasses copy.
  2 timesRepeat: [
  factory newClassInCategory: #Two].
  lastTwoClasses := factory createdClasses copyWithoutAll: firstThreeClasses.
  self assert: (firstThreeClasses allSatisfy: [:class| class category = (factory packageName, '-', #One) asSymbol]).
  self assert: (lastTwoClasses allSatisfy: [:class| class category = (factory packageName, '-', #Two) asSymbol]).!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testDefaultCategoryCleanUp (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testDefaultCategoryCleanUp (in category 'testing') -----
  testDefaultCategoryCleanUp
  | createdClassNames allClasses |
  3 timesRepeat: [
  factory newClass].
  createdClassNames := factory createdClassNames.
  factory cleanUp.
  self assert: (factory createdClasses allSatisfy: [:class| class isObsolete]).
  allClasses := SystemNavigation new allClasses.
  self assert: (factory createdClasses noneSatisfy: [:class| allClasses includes: class]).
  self deny: (SystemOrganization categories includes: factory defaultCategory).
  self deny: (ChangeSet current changedClassNames includesAnyOf: createdClassNames)
  !

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testMultipleClassCreation (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testMultipleClassCreation (in category 'testing') -----
  testMultipleClassCreation
  5 timesRepeat: [
  factory newClass].
  self assert: (SystemNavigation new allClasses includesAllOf: factory createdClasses).
  self assert: factory createdClassNames asSet size = 5.
  self assert: (SystemOrganization listAtCategoryNamed: factory defaultCategory) asSet = factory createdClassNames asSet!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testPackageCleanUp (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testPackageCleanUp (in category 'testing') -----
  testPackageCleanUp
  | createdClassNames allClasses |
  3 timesRepeat: [
  factory newClassInCategory: #One].
  2 timesRepeat: [
  factory newClassInCategory: #Two].
  createdClassNames := factory createdClassNames.
  factory cleanUp.
  self assert: (factory createdClasses allSatisfy: [:class| class isObsolete]).
  allClasses := SystemNavigation new allClasses.
  self assert: (factory createdClasses noneSatisfy: [:class| allClasses includes: class]).
  self assert: (SystemOrganization categoriesMatching: factory packageName, '*') isEmpty.
  self deny: (ChangeSet current changedClassNames includesAnyOf: createdClassNames)
  !

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testSingleClassCreation (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testSingleClassCreation (in category 'testing') -----
  testSingleClassCreation
  |class elementsInCategoryForTest |
  class := factory
  newSubclassOf: Object
  instanceVariableNames: 'a b c'
  classVariableNames: 'X Y'.
  self assert: (SystemNavigation new allClasses includes: class).
  elementsInCategoryForTest := SystemOrganization listAtCategoryNamed: factory defaultCategory.
  self assert: elementsInCategoryForTest = {class name}.
  self assert: class instVarNames = #(a b c).
  self assert: class classPool keys asSet = #(X Y) asSet!

Item was changed:
+ ----- Method: ClassFactoryForTestCaseTest>>testSingleClassFastCreation (in category 'tests') -----
- ----- Method: ClassFactoryForTestCaseTest>>testSingleClassFastCreation (in category 'testing') -----
  testSingleClassFastCreation
  |class elementsInCategoryForTest |
  class := factory newClass.
  self assert: (SystemNavigation new allClasses includes: class).
  elementsInCategoryForTest := SystemOrganization listAtCategoryNamed: factory defaultCategory.
  self assert: elementsInCategoryForTest = {class name}.
  self assert: class instVarNames isEmpty.
  self assert: class classPool isEmpty!

Item was changed:
+ ----- Method: ClassTestCase>>selectorsTested (in category 'coverage') -----
- ----- Method: ClassTestCase>>selectorsTested (in category 'Coverage') -----
  selectorsTested
  | literals |
  literals := Set new.
  self class
  selectorsAndMethodsDo: [ :s :m | (s beginsWith: 'test')
  ifTrue: [ literals addAll: (m messages)] ].
  ^ literals sorted!

Item was changed:
+ ----- Method: LongTestCase>>defaultTimeout (in category 'accessing') -----
- ----- Method: LongTestCase>>defaultTimeout (in category 'as yet unclassified') -----
  defaultTimeout
  "Answer the default timeout to use for tests in this test case. The timeout is a value in seconds."
 
  ^super defaultTimeout * 10!

Item was changed:
+ ----- Method: LongTestCaseTest>>setUp (in category 'running') -----
- ----- Method: LongTestCaseTest>>setUp (in category 'as yet unclassified') -----
  setUp
 
  preferenceValue := LongTestCase shouldRun!

Item was changed:
+ ----- Method: LongTestCaseTest>>tearDown (in category 'running') -----
- ----- Method: LongTestCaseTest>>tearDown (in category 'as yet unclassified') -----
  tearDown
 
  LongTestCase shouldRun: preferenceValue!

Item was changed:
+ ----- Method: LongTestCaseTest>>testLongTestCaseDoNotRun (in category 'tests') -----
- ----- Method: LongTestCaseTest>>testLongTestCaseDoNotRun (in category 'testing') -----
  testLongTestCaseDoNotRun
  "self debug: #testLongTestCaseDoNotRun"
  "self run: #testLongTestCaseDoNotRun"
 
  LongTestCase doNotRunLongTestCases.
  LongTestCaseTestUnderTest markAsNotRun.
  self deny: LongTestCaseTestUnderTest hasRun.
  LongTestCaseTestUnderTest suite run.
  self deny: LongTestCaseTestUnderTest hasRun.
 
 
  !

Item was changed:
+ ----- Method: LongTestCaseTest>>testLongTestCaseRun (in category 'tests') -----
- ----- Method: LongTestCaseTest>>testLongTestCaseRun (in category 'testing') -----
  testLongTestCaseRun
  "self debug: #testLongTestCaseRun"
  "self run: #testLongTestCaseRun"
 
  LongTestCase runLongTestCases.
  LongTestCaseTestUnderTest markAsNotRun.
  self deny: LongTestCaseTestUnderTest hasRun.
  LongTestCaseTestUnderTest suite run.
  self assert: LongTestCaseTestUnderTest hasRun.
  LongTestCase doNotRunLongTestCases.
 
  !

Item was changed:
+ ----- Method: LongTestCaseTestUnderTest>>testWhenRunMarkTestedToTrue (in category 'tests') -----
- ----- Method: LongTestCaseTestUnderTest>>testWhenRunMarkTestedToTrue (in category 'testing') -----
  testWhenRunMarkTestedToTrue
 
 
  RunStatus := true.!

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>errorTest (in category 'data') -----
- ----- Method: ResumableTestFailureTestCase>>errorTest (in category 'not categorized') -----
  errorTest
  1 zork
  !

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>failureTest (in category 'data') -----
- ----- Method: ResumableTestFailureTestCase>>failureTest (in category 'not categorized') -----
  failureTest
  self
  assert: false description: 'You should see me' resumable: true;
  assert: false description: 'You should see me too' resumable: true;
  assert: false description: 'You should see me last' resumable: false;
  assert: false description: 'You should not see me' resumable: true
  !

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>okTest (in category 'data') -----
- ----- Method: ResumableTestFailureTestCase>>okTest (in category 'not categorized') -----
  okTest
  self assert: true
  !

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>regularTestFailureTest (in category 'data') -----
- ----- Method: ResumableTestFailureTestCase>>regularTestFailureTest (in category 'not categorized') -----
  regularTestFailureTest
  self assert: false description: 'You should see me'
  !

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>resumableTestFailureTest (in category 'data') -----
- ----- Method: ResumableTestFailureTestCase>>resumableTestFailureTest (in category 'not categorized') -----
  resumableTestFailureTest
  self
  assert: false description: 'You should see me' resumable: true;
  assert: false description: 'You should see me too' resumable: true;
  assert: false description: 'You should see me last' resumable: false;
  assert: false description: 'You should not see me' resumable: true
  !

Item was changed:
+ ----- Method: ResumableTestFailureTestCase>>testResumable (in category 'tests') -----
- ----- Method: ResumableTestFailureTestCase>>testResumable (in category 'not categorized') -----
  testResumable
  | result suite |
  suite := TestSuite new.
  suite addTest: (self class selector: #errorTest).
  suite addTest: (self class selector: #regularTestFailureTest).
  suite addTest: (self class selector: #resumableTestFailureTest).
  suite addTest: (self class selector: #okTest).
  result := suite run.
  self assert: result failures size = 2;
  assert: result errors size = 1
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testAssertionFailedInRaiseWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testAssertionFailedInRaiseWithExceptionDo (in category 'test') -----
  testAssertionFailedInRaiseWithExceptionDo
 
  | testCase testResult  |
 
  testCase := self class selector: #assertionFailedInRaiseWithExceptionDoTest.
  testResult := testCase run.
 
  self assert: (testResult failures includes: testCase).
  self assert: testResult failures size=1.
  self assert: testResult passed isEmpty.
  self assert: testResult errors isEmpty.
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testAutoAssertFalse (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testAutoAssertFalse (in category 'test') -----
  testAutoAssertFalse
  | booleanCondition |
  self assert: self isLogging.
  self should: [ self assert: 1 = 2 description: 'self assert: 1 = 2' ] raise: TestResult failure.
  booleanCondition := (self stream contents subStrings: {Character cr}) last = 'self assert: 1 = 2'.
  self assert: booleanCondition!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testAutoAssertTrue (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testAutoAssertTrue (in category 'test') -----
  testAutoAssertTrue
  self assert: 1 = 1.
  self assert: true!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testAutoDenyFalse (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testAutoDenyFalse (in category 'test') -----
  testAutoDenyFalse
  | booleanCondition |
  self assert: self isLogging.
  self should: [ self deny: 1 = 1 description: 'self deny: 1 = 1'.] raise: TestResult failure.
  booleanCondition := (self stream contents subStrings:  {Character cr}) last = 'self deny: 1 = 1'.
  self assert: booleanCondition!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testAutoDenyTrue (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testAutoDenyTrue (in category 'test') -----
  testAutoDenyTrue
  self deny: 1 = 2.
  self deny: false!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testDifferentExceptionInShouldRaiseWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testDifferentExceptionInShouldRaiseWithExceptionDo (in category 'test') -----
  testDifferentExceptionInShouldRaiseWithExceptionDo
 
  | testCase testResult  |
 
  testCase := self class selector: #differentExceptionInShouldRaiseWithExceptionDoTest.
  testResult := testCase run.
 
  self assert: (testResult passed includes: testCase).
  self assert: testResult errors isEmpty.
  self assert: testResult failures isEmpty.
  self assert: testResult passed size=1!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testEnsureInternetFails (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testEnsureInternetFails (in category 'test') -----
  testEnsureInternetFails
 
  self should: [self ensureInternetConnectionTo: ''] raise: Error!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testErrorInRaiseWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testErrorInRaiseWithExceptionDo (in category 'test') -----
  testErrorInRaiseWithExceptionDo
 
  | testCase testResult  |
 
  testCase := self class selector: #errorInRaiseWithExceptionDoTest.
  testResult := testCase run.
 
  self assert: (testResult errors includes: testCase).
  self assert: testResult errors size=1.
  self assert: testResult failures isEmpty.
  self assert: testResult passed isEmpty.
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testExceptionWithMatchingString (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testExceptionWithMatchingString (in category 'as yet unclassified') -----
  testExceptionWithMatchingString
  self should: [ Object obsolete ] raise: Error whoseDescriptionIncludes: 'NOT obsolete' description: 'tested obsoleting Object'!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testExceptionWithoutMatchingString (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testExceptionWithoutMatchingString (in category 'as yet unclassified') -----
  testExceptionWithoutMatchingString
  self should: [ Object obsolete ] raise: Error whoseDescriptionDoesNotInclude: 'Zero' description: 'tested obsoleting Object'!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testInvalidShouldNotTakeMoreThan (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testInvalidShouldNotTakeMoreThan (in category 'test') -----
  testInvalidShouldNotTakeMoreThan
 
  | testCase testResult |
 
  testCase := self class selector: #invalidShouldNotTakeMoreThan.
  testResult := testCase run.
 
  self assert: testResult passed isEmpty.
  self assert: testResult failures size = 1.
  self assert: (testResult failures includes: testCase).
  self assert: testResult errors isEmpty
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testInvalidShouldNotTakeMoreThanMilliseconds (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testInvalidShouldNotTakeMoreThanMilliseconds (in category 'test') -----
  testInvalidShouldNotTakeMoreThanMilliseconds
 
  | testCase testResult |
 
  testCase := self class selector: #invalidShouldNotTakeMoreThanMilliseconds.
  testResult := testCase run.
 
  self assert: testResult passed isEmpty.
  self assert: testResult failures size = 1.
  self assert: (testResult failures includes: testCase).
  self assert: testResult errors isEmpty
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testNoExceptionInShouldRaiseWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testNoExceptionInShouldRaiseWithExceptionDo (in category 'test') -----
  testNoExceptionInShouldRaiseWithExceptionDo
 
  | testCase testResult  |
 
  testCase := self class selector: #noExceptionInShouldRaiseWithExceptionDoTest.
  testResult := testCase run.
 
  self assert: (testResult failures includes: testCase).
  self assert: testResult failures size=1.
  self assert: testResult passed isEmpty.
  self assert: testResult errors isEmpty.
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testNoExceptionWithMatchingString (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testNoExceptionWithMatchingString (in category 'as yet unclassified') -----
  testNoExceptionWithMatchingString
  self shouldnt: [ Object obsolete ] raise: Error whoseDescriptionIncludes: 'Zero' description: 'tested obsoleting Object'!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testNoExceptionWithNoMatchingString (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testNoExceptionWithNoMatchingString (in category 'as yet unclassified') -----
  testNoExceptionWithNoMatchingString
  self shouldnt: [ Object obsolete ] raise: Error whoseDescriptionDoesNotInclude: 'NOT' description: 'tested obsoleting Object'!

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testShouldFix (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testShouldFix (in category 'test') -----
  testShouldFix
 
  | testCase testResult  |
 
  testCase := self class selector: #shouldFixTest.
  testResult := testCase run.
 
  self assert: (testResult passed includes: testCase).
  self assert: testResult passed size=1.
  self assert: testResult failures isEmpty.
  self assert: testResult errors isEmpty.
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testShouldRaiseWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testShouldRaiseWithExceptionDo (in category 'test') -----
  testShouldRaiseWithExceptionDo
 
  | testCase testResult  |
 
  testCase := self class selector: #shouldRaiseWithExceptionDoTest.
  testResult := testCase run.
 
  self assert: (testResult passed includes: testCase).
  self assert: testResult passed size=1.
  self assert: testResult failures isEmpty.
  self assert: testResult errors isEmpty.
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testValidShouldNotTakeMoreThan (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testValidShouldNotTakeMoreThan (in category 'test') -----
  testValidShouldNotTakeMoreThan
  | testCase testResult |
 
  testCase := self class selector: #validShouldNotTakeMoreThan.
  testResult := testCase run.
 
  self assert: (testResult passed includes: testCase).
  self assert: testResult passed size = 1.
  self assert: testResult failures isEmpty.
  self assert: testResult errors isEmpty
 
  !

Item was changed:
+ ----- Method: SUnitExtensionsTest>>testValidShouldNotTakeMoreThanMilliseconds (in category 'tests') -----
- ----- Method: SUnitExtensionsTest>>testValidShouldNotTakeMoreThanMilliseconds (in category 'test') -----
  testValidShouldNotTakeMoreThanMilliseconds
 
  | testCase testResult |
 
  testCase := self class selector: #validShouldNotTakeMoreThanMilliseconds.
  testResult := testCase run.
 
  self assert: (testResult passed includes: testCase).
  self assert: testResult passed size = 1.
  self assert: testResult failures isEmpty.
  self assert: testResult errors isEmpty
 
  !

Item was changed:
+ ----- Method: SUnitTest>>errorShouldntRaise (in category 'tests') -----
- ----- Method: SUnitTest>>errorShouldntRaise (in category 'testing') -----
  errorShouldntRaise
  self
  shouldnt: [self someMessageThatIsntUnderstood]
  raise: Notification new
  !

Item was changed:
+ ----- Method: SUnitTest>>testAssert (in category 'tests') -----
- ----- Method: SUnitTest>>testAssert (in category 'testing') -----
  testAssert
  self assert: true.
  self deny: false
  !

Item was changed:
+ ----- Method: SUnitTest>>testAssertIdentical (in category 'tests') -----
- ----- Method: SUnitTest>>testAssertIdentical (in category 'testing') -----
  testAssertIdentical
  | a b |
  a := 'foo'.
  b := 'bar'.
  self should: [self assert: a identical: b] raise: TestFailure.
  [self assert: a identical: b] on: TestFailure do: [:e | |error|
  error := e messageText.
  self assert: (error includesSubstring: a) description: 'Error message doesn''t include the expected value'.
  self assert: (error includesSubstring: b) description: 'Error message doesn''t include the expected value'].!

Item was changed:
+ ----- Method: SUnitTest>>testAssertIdenticalDescription (in category 'tests') -----
- ----- Method: SUnitTest>>testAssertIdenticalDescription (in category 'testing') -----
  testAssertIdenticalDescription
  | a b |
  a := 'foo'.
  b := a copy.
  self should: [self assert: a identical: b description: 'A desciption'] raise: TestFailure.
  [self assert: a identical: b description: 'A desciption'] on: TestFailure do: [:e | |error|
  error := e messageText.
  self assert: (error includesSubstring: 'A desciption') description: 'Error message doesn''t give you the description'].!

Item was changed:
+ ----- Method: SUnitTest>>testAssertIdenticalWithEqualObjects (in category 'tests') -----
- ----- Method: SUnitTest>>testAssertIdenticalWithEqualObjects (in category 'testing') -----
  testAssertIdenticalWithEqualObjects
  | a b |
  a := 'foo'.
  b := a copy.
  self should: [self assert: a identical: b] raise: TestFailure.
  [self assert: a identical: b] on: TestFailure do: [:e | |error|
  error := e messageText.
  self assert: (error includesSubstring: 'not identical') description: 'Error message doesn''t say the two things aren''t identical'].!

Item was changed:
+ ----- Method: SUnitTest>>testDefects (in category 'tests') -----
- ----- Method: SUnitTest>>testDefects (in category 'testing') -----
  testDefects
  | result suite error failure |
  suite := TestSuite new.
  suite addTest: (error := self class selector: #error).
  suite addTest: (failure := self class selector: #fail).
  result := suite run.
  self assert: result defects asArray = (Array with: error with: failure).
  self
  assertForTestResult: result
  runCount: 2
  passed: 0
  failed: 1
  errors: 1
  !

Item was changed:
+ ----- Method: SUnitTest>>testDialectLocalizedException (in category 'tests') -----
- ----- Method: SUnitTest>>testDialectLocalizedException (in category 'testing') -----
  testDialectLocalizedException
 
  self
  should: [TestResult signalFailureWith: 'Foo']
  raise: TestResult failure.
  self
  should: [TestResult signalErrorWith: 'Foo']
  raise: TestResult error.
 
  !

Item was changed:
+ ----- Method: SUnitTest>>testError (in category 'tests') -----
- ----- Method: SUnitTest>>testError (in category 'testing') -----
  testError
 
  | case result |
 
  case := self class selector: #error.
  result := case run.
  self
  assertForTestResult: result
  runCount: 1
  passed: 0
  failed: 0
  errors: 1.
 
  case := self class selector: #errorShouldntRaise.
  result := case run.
  self
  assertForTestResult: result
  runCount: 1
  passed: 0
  failed: 0
  errors: 1
  !

Item was changed:
+ ----- Method: SUnitTest>>testException (in category 'tests') -----
- ----- Method: SUnitTest>>testException (in category 'testing') -----
  testException
 
  self
  should: [self error: 'foo']
  raise: TestResult error
  !

Item was changed:
+ ----- Method: SUnitTest>>testFail (in category 'tests') -----
- ----- Method: SUnitTest>>testFail (in category 'testing') -----
  testFail
 
  | case result |
 
  case := self class selector: #fail.
  result := case run.
 
  self
  assertForTestResult: result
  runCount: 1
  passed: 0
  failed: 1
  errors: 0
  !

Item was changed:
+ ----- Method: SUnitTest>>testRan (in category 'tests') -----
- ----- Method: SUnitTest>>testRan (in category 'testing') -----
  testRan
 
  | case |
 
  case := self class selector: #setRun.
  case run.
  self assert: case hasSetup.
  self assert: case hasRun
  !

Item was changed:
+ ----- Method: SUnitTest>>testRanOnlyOnce (in category 'tests') -----
- ----- Method: SUnitTest>>testRanOnlyOnce (in category 'testing') -----
  testRanOnlyOnce
 
  self assert: hasRanOnce ~= true.
  hasRanOnce := true
  !

Item was changed:
+ ----- Method: SUnitTest>>testResult (in category 'tests') -----
- ----- Method: SUnitTest>>testResult (in category 'testing') -----
  testResult
 
  | case result |
 
  case := self class selector: #noop.
  result := case run.
 
  self
  assertForTestResult: result
  runCount: 1
  passed: 1
  failed: 0
  errors: 0
  !

Item was changed:
+ ----- Method: SUnitTest>>testRunning (in category 'tests') -----
- ----- Method: SUnitTest>>testRunning (in category 'testing') -----
  testRunning
 
  (Delay forSeconds: 2) wait
  !

Item was changed:
+ ----- Method: SUnitTest>>testSelectorWithArg: (in category 'tests') -----
- ----- Method: SUnitTest>>testSelectorWithArg: (in category 'testing') -----
  testSelectorWithArg: anObject
  "should not result in error"!

Item was changed:
+ ----- Method: SUnitTest>>testShould (in category 'tests') -----
- ----- Method: SUnitTest>>testShould (in category 'testing') -----
  testShould
 
  self
  should: [true];
  shouldnt: [false]
  !

Item was changed:
+ ----- Method: SUnitTest>>testSuite (in category 'tests') -----
- ----- Method: SUnitTest>>testSuite (in category 'testing') -----
  testSuite
 
  | suite result |
 
  suite := TestSuite new.
  suite
  addTest: (self class selector: #noop);
  addTest: (self class selector: #fail);
  addTest: (self class selector: #error).
 
  result := suite run.
 
  self
  assertForTestResult: result
  runCount: 3
  passed: 1
  failed: 1
  errors: 1
  !

Item was changed:
+ ----- Method: SUnitTest>>testTestTimeout (in category 'tests') -----
- ----- Method: SUnitTest>>testTestTimeout (in category 'testing') -----
  testTestTimeout
  self should:[(Delay forSeconds: (self timeoutForTest + 1)) wait] raise: TestFailure.
  !

Item was changed:
+ ----- Method: SUnitTest>>testTestTimeoutLoop (in category 'tests') -----
- ----- Method: SUnitTest>>testTestTimeoutLoop (in category 'testing') -----
  testTestTimeoutLoop
  <timeout: 1>
  self should:[[] repeat] raise: TestFailure.
  !

Item was changed:
+ ----- Method: SUnitTest>>testTestTimeoutTag (in category 'tests') -----
- ----- Method: SUnitTest>>testTestTimeoutTag (in category 'testing') -----
  testTestTimeoutTag
  <timeout: 1>
  self should:[(Delay forSeconds: 3) wait] raise: TestFailure.
  !

Item was changed:
+ ----- Method: SUnitTest>>testWithExceptionDo (in category 'tests') -----
- ----- Method: SUnitTest>>testWithExceptionDo (in category 'testing') -----
  testWithExceptionDo
 
  self
  should: [self error: 'foo']
  raise: TestResult error
  withExceptionDo: [:exception |
  self assert: (exception description includesSubstring: 'foo')
  ]
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>dummy (in category 'private') -----
- ----- Method: SimpleTestResourceTestCase>>dummy (in category 'not categorized') -----
  dummy
  self assert: true
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>error (in category 'extensions') -----
- ----- Method: SimpleTestResourceTestCase>>error (in category 'not categorized') -----
  error
  'foo' odd
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>fail (in category 'extensions') -----
- ----- Method: SimpleTestResourceTestCase>>fail (in category 'not categorized') -----
  fail
  self assert: false
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>setRun (in category 'extensions') -----
- ----- Method: SimpleTestResourceTestCase>>setRun (in category 'not categorized') -----
  setRun
  resource setRun
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>setUp (in category 'running') -----
- ----- Method: SimpleTestResourceTestCase>>setUp (in category 'not categorized') -----
  setUp
  resource := SimpleTestResource current
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>testRan (in category 'tests') -----
- ----- Method: SimpleTestResourceTestCase>>testRan (in category 'not categorized') -----
  testRan
  | case |
 
  case := self class selector: #setRun.
  case run.
  self assert: resource hasSetup.
  self assert: resource hasRun
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>testResourceInitRelease (in category 'tests') -----
- ----- Method: SimpleTestResourceTestCase>>testResourceInitRelease (in category 'not categorized') -----
  testResourceInitRelease
  | result suite error failure |
  suite := TestSuite new.
  suite addTest: (error := self class selector: #error).
  suite addTest: (failure := self class selector: #fail).
  suite addTest: (self class selector: #dummy).
  result := suite run.
  self assert: resource hasSetup
  !

Item was changed:
+ ----- Method: SimpleTestResourceTestCase>>testResourcesCollection (in category 'tests') -----
- ----- Method: SimpleTestResourceTestCase>>testResourcesCollection (in category 'not categorized') -----
  testResourcesCollection
  | collection |
  collection := self resources.
  self assert: collection size = 1
  !

Item was changed:
+ ----- Method: TestCase class>>testSelectors (in category 'accessing') -----
- ----- Method: TestCase class>>testSelectors (in category 'Accessing') -----
  testSelectors
 
  ^(self selectors asArray select: [ :each |
  (each beginsWith: 'test') and: [ each numArgs isZero ] ]) sort!

Item was changed:
+ ----- Method: TestCase>>expectedFailures (in category 'failures') -----
- ----- Method: TestCase>>expectedFailures (in category 'testing') -----
  expectedFailures
  ^ Array new!