Skip to content

Commit

Permalink
Test instantiation with alias
Browse files Browse the repository at this point in the history
  • Loading branch information
jecisc committed Jan 21, 2025
1 parent f5dd60c commit f78ac63
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions src/Famix-Python-Importer-Tests/FamixPythonProject1Test.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -1764,6 +1764,52 @@ FamixPythonProject1Test >> testInstantiationSourceAnchor [
self assert: invocation sourceText equals: 'Person("John", 36)'
]

{ #category : 'tests - instantiation' }
FamixPythonProject1Test >> testInstantiationWithAlias [

| class module reference constructor invocation |
class := self classNamed: 'Employee'.
module := self moduleNamed: 'moduleWithImportsAndAliases'.

reference := class incomingReferences detect: [ :aReference | aReference referencer = module ].

self assert: reference class equals: FamixPythonReference.
self assert: reference source equals: module.
self assert: reference referencer equals: module.
self assert: reference target equals: class.
self assert: reference referredEntity equals: class.
self assert: (module outgoingReferences anySatisfy: [ :aReference | aReference referredEntity = class ]).

constructor := class methods detect: #isConstructor.
invocation := constructor incomingInvocations detect: [ :aReference | aReference sender = module ].

self assert: invocation class equals: FamixPythonInvocation.
self assert: invocation source equals: module.
self assert: invocation sender equals: module.
self assertCollection: invocation target hasSameElements: { constructor }.
self assert: invocation invokedEntity equals: constructor .
self assert: (module outgoingInvocations anySatisfy: [ :aReference | aReference invokedEntity = constructor ])
]

{ #category : 'tests - instantiation' }
FamixPythonProject1Test >> testInstantiationWithAliasSourceAnchor [

| class module reference constructor invocation |
class := self classNamed: 'Employee'.
module := self moduleNamed: 'moduleWithImportsAndAliases'.

reference := (class incomingReferences select: [ :aReference | aReference referencer = module ]) detectMax: [ :r | r sourceAnchor startPos ].

self assert: reference sourceAnchor isNotNil.
self assert: reference sourceText equals: 'Emp("Imen", 37)'.

constructor := class methods detect: #isConstructor.
invocation := constructor incomingInvocations detect: [ :aReference | aReference sender = module ].

self assert: invocation sourceAnchor isNotNil.
self assert: invocation sourceText equals: 'Emp("Imen", 37)'
]

{ #category : 'tests - invocations' }
FamixPythonProject1Test >> testInvocationOfMultipleStubFunctionsOfTheSameName [

Expand Down

0 comments on commit f78ac63

Please sign in to comment.