How to inject a mocked dependency into the tested instance?

Hey
my StringGenerator class accesses the workspace being able to look up certain information from different files in the workspace. Now I'm writing an isolated unit test that should work without the eclipse workspace. Unfortunately I'm not able to inject the mocked dependency.
How do I inject the mocked instance of ResourceLookUp into the StringGenerator instance?
The class to be tested:
class StringGenerator {
@Inject extension ResourceLookUp resourceLookUp
def dispatch initStep(TestRequired o) '''
Test Case «o.name.testNameLookUp» (Test Case ID: «o.name») has been successfully performed.'''
The Test:
import static org.mockito.Mockito.*
@RunWith(JUnitParamsRunner)
class StringGeneratorInitialisationTest {
@Inject extension ValidationTestHelper validationTestHelper = new ValidationTestHelper
@Inject extension StringGenerator stringGenerator = new StringGenerator
@Inject extension ParseHelper<Model> parseHelper = new ParseHelper
@Before
def void before() {
var i = new TestStandaloneSetup().createInjectorAndDoEMFRegistration
i.injectMembers(parseHelper)
val resourceLookUp = mock(ResourceLookUp)
when(resourceLookUp.testNameLookUp("TEST XYZ")).thenReturn("TEST NAME AS STRING")
// how do I get this mocked ResourceLookUp instances injected into StringGenerator instance?
i.injectMembers(stringGenerator)
i.injectMembers(validationTestHelper)
// here comes my test ....
I was playing around with the debugger but could not find any solution
Thank you!
Kon

Hey,
noticed that the injection does not work completely as expected. The StringGenerator class gets the mocked ResourceLookUp instance.
class StringGenerator {
@Inject extension ResourceLookUp resourceLookUp
def dispatch initStep(TestRequired o) '''
Test Case «o.name.testNameLookUp» (Test Case ID: «o.name») has been successfully performed.'''
but if the test-case contains an error assertion like model.assertNoErrors my TestValidator gets called. Unfortunately the ResourceLookUp instance there is not the mocked one
class TestValidator extends AbstractTestValidator {
@Inject extension ResourceLookUp resourceLookUp
It somehow ignores my guice setup:
val mockedResourceLookUp = mock(ResourceLookUp)
when(mockedResourceLookUp.testNameLookUp("TEST XYZ")).thenReturn("TEST NAME AS STRING")
bind(ResourceLookUp).toInstance(mockedResourceLookUp)
and uses the "real" class for injection. Is there anything spezial about the dependency injection for the validator class?
Thank you.
Kon

Similar Messages

  • How to convert a word document into the PDF format?

    Please instruct me step by step on how to convert several Word documents into the PDF format?

    If properly installed and updated (depending on the WORD version), you can simply do any of the following:
    1. Open the doc in WORD and select Print, choose the Adobe PDF printer, print.
    2. Open the doc in WORD and go to the Acrobat menu in WORD and select create PDF (this uses PDF Maker).
    3. Open the doc in Acrobat and the conversion should be done based on PDF Maker.

  • How to use one report column into the another report in obiee

    How to use one report column into the another report in obiee

    i dont want to use column as a filter for another report it should be report column for another report
    Thanks,
    Vivek

  • How do I share files uploaded into the Creative Cloud with other creative cloud members?

    How do I share files uploaded into the Creative Cloud with other creative cloud members?

    Should be easy.  Try this...
    In Thumbnails view, click the little triangle (pointing downward) in the lower-right corner of the asset you want to share.
    In the blue icon bar that appears, click the Share icon (the third icon from the left, just right of the trash icon). The Share dialog should pop up.
    In the Share dialog, enter the email address of the person with whom you want to share the asset, then click the Send Email button - they'll receive an email with a link to your asset. OR
    You can also copy a link to the asset and then paste that into your own email client if you prefer.  To do that, click the Link icon (looks like a "chain", and is to the right of the email "envelope" icon) - then click the Copy Link button.
    Note that the Share options won't be available if your asset is set to "Private" - you can control whether an asset can be viewed (or downloaded) by others by clicking the Public/Private control (green or red "lock" icon).
    You can also access the same Share controls if you click on the file to see it one-up (you can do this from either Thumbnails view or List view); click the Share icon near the upper right corner of the browser window (to the right of the asset name).
    Hope that helps.

  • After creating a new user account, how do I move my files into the new user?

    I have an issue where my 'Desktop/Screensaver' prefs seem to be corrupt somehow. When I click on that icon in System Preferences, it stalls and I get the spinning ball, thus resulting in a force quit. After reading a Mac Format magazine where someone wrote in with a similar issue, they said to trash various prefs (did that and made no difference) and if that didn't work, try creating a New User account (therefore creating brand new system prefs) and move your stuff over.
    Well, I've created the New User account, but I can't figure out how to move/copy my stuff into the user folders. After copying and attempting to move stuff in, I see folders with a red circle with a white line through it (like a 'no entry' sign).
    Any clue as to how this can be done? All I'm trying to do is to reinstate the system prefs so they are not corrupt anymore on my log-in.

    No. Not the main Library folder. Make absolutely sure you are in the Home Library folder and not the main Library folder.
    Your Home Library folder is hidden in Lion. To get to it, in the Finder menu, select GO and hold the option key down. Select Library in the submenu. The Finder window will open in your Home Library. This is where your user prefs are stored.
    Once there, you will see the Preferences folder. Open it up, select all items within it and move them to the trash. You will need to restart in order for the new Finder preferences to be recreated.
    Once you restart, then you will be back to the default preferences to the system and all applications. And yes, it will affect all settings including your Dock, just as logging into a new user. You will have to reset everything there also.
    If you wish to do a selective method, instead of deleting all preferences, try deleting the one associated with your problem. Screen saver problems should be affected by the system preferences, so try deleting this:
    com.apple.systempreferences.plist
    com.apple.systempreferences.plist.lockfile
    Note that when you delete system file preferences, a restart will be required. For applications, just quit the application before trashing preference files.

  • How to add a filter/selection into the report title?

    Hi experts,
    Currently I try to fugure out how to set up a field into the page header (title) of a report in order to dynamically adapt the title to selected filter criteria. I tried to use the Reprot Filter Summary, but since I do have several sheets in my reports the information given through it is not applicable.
    What I would like to achieve is that the end user can select e.g. a category X and Y and the title says: "Report title - categories: X,Y" Somthg like this. I'd appreciate any tips.
    Best regards

    Hi guys,
    thanks so far. I managed to show prompts in the report. But still my problem is nor 100% solved
    I would like t achieve that the filtered criteria in the report title is separated through a comma like in the report filter summary - e.g.: {001, 002, 003, 004} followed by just 1chart/table that is including the whole information.
    When I however just drag a variable into the report it automatically created different sections, right? Like ........ table, chart, whatever... .......table chart whatever........
    Regards

  • How to import jar & exp file into the eclipse 3.1 + jcop

    hi, I am new to the javacard technology.
    I have implementing applet by using eclipse 3.1 + jcop plugin.
    recentlly, i got jar and exp file from someone. and I have to import given two files in the my applet.
    Q1. but i don't know how to use(import) two files into the elipse.
    and...
    I have tried to put the export file structure in the build path, but I am still getting the same error:
    Q2. "resolving constant-pool of clazz cash/ccash; failed: no such clazz cash/ccash;", what means?
    anyone help me~plz!
    many thanks..
    lsh.
    Message was edited by:
    neonoble

    1) In the Package explorer right-click the project you want to import the jar files into.
    2) Click import
    3) Select Archive file in the Import dialog box and click next
    4) Browse to the jar file and select it
    Socx

  • How do I get my file into the time line in Premiere Pro CC?

    How do I get my file into the time line in Premiere Pro CC? I am use to Premier Pro CS6 and unfortunately my labtop took a crash and I lost all of my adobe products. I wanted to check out a trial version and I cannot seem to find one for CS6! Please Help Me! My project is due tonight!!!!!

    Hi Aneumann,
    Welcome to the Forums.
    You have to just right click on the clip imported, in the project panel and select new sequence from clip. You can also go to file menu>new>sequence and create a sequence and then drag the clips after importing them , into the timeline.
    Regards,
    Vinay

  • How do it get my contacts into the cloud contacts for siri to recognize

    I've looked through the Siri help stuff, and there' slots of things that tell me to put my info/contact into Siri at Settings / Siri / My Info.  Great, but when I select that, I get an "All icloud" contact list.  Since I have mself, wife, colleagues already in my contacts (MS Exchange) already -- how do I simply "copy" them into the icloud contact group????  I certainly don't want ot have to re-enter them twice. Also, I'm on a PC, is there no web interface from my PC to my icloud account?  Any help greatly appreciated -- I'm obviously on the new 4S ...

    Welcome to the Apple community.
    If you deleted your contacts from your contacts app, they will also be deleted in iCloud.
    However if you deleted your account or simply turned contacts syncing off, you should be able to log back into your account or re-enable contacts syncing and they would repopulate your contacts app.
    Could you perhaps tell us which of these you have done.

  • How do I put test step comments into the test report?

    How do I get the comment for a test step into the test report? I see that the sequence documentation tool and the LabVIEW GUI are able to retrieve this info, but I cannot figure out how to extract it for the test report. I've gone over the API and don't see a function to read it, and I haven't found it in the sequence context at any point during sequence execution.

    If you have LabView try this...
    Message Edited by paulmw on 02-08-2007 01:41 PM
    Attachments:
    commentinreport.PNG ‏9 KB
    StepComment_testLV.seq ‏17 KB
    GetComment.vi ‏27 KB

  • How can I put my bookmarks into the sequence I want, alphabetical or otherwise?

    How can I put my bookmarks into the sequence I want, alphabetical or otherwise?

    http://kb.mozillazine.org/Sorting_bookmarks_alphabetically <br />
    http://kb.mozillazine.org/Sorting_and_rearranging_bookmarks_-_Firefox

  • How can i add Custom fields into the

    Dear Experts
    We have Ecc6.0 system,
    How can i add Custom fields into the Infotype Screen(PA30),i heard that we do it by PM01 Tcode.
    But in PM01 i am unable to find the enhance infotype tab.
    How can i do it ....pls help.....
    Regards
    Sajid

    Hi,
    Do it thru the third tab : Single Screen.
    There write down the infotype number (e.g. 0022) and say generate objects.
    Regards,
    Dilek

  • How to sent importet RAW files into the cloud? The files was importet from Canon EOS via camera adapter to the iPad. The Files was stored in the folder importet. But the files does not sync with photostream.

    How to sent importet RAW files into the cloud? The files was importet from Canon EOS via camera adapter to the iPad. The Files was stored in the folder importet. But the files does not sync with photostream.

    Welcome to the Apple community.
    Only photos taken on the iOS device and after photo stream was enabled will be added to photo stream.

  • How do you set an image into the background of a JPanel or JFrame?

    How do you set an image into the background of a JPanel or JFrame?

    Something like this, Ive thrown in an ImageIcon on a
    button too for good measure.
    import java.awt.*;
    import javax.swing.*;
    public class JFrameImage extends JFrame {
    public JFrameImage() {
    Container c    = getContentPane();
    JPanel panel = new JPanel(){
                 public void paintComponent(Graphics g)     {
    ImageIcon img = new
    = new ImageIcon("background.jpg");
                      g.drawImage(img.getImage(), 0, 0, null);
                      super.paintComponent(g);
            panel.setOpaque(false);
    ImageIcon icon = new ImageIcon("onButton.jpg");
    JButton button = new JButton(icon);
    panel.add(button);
    c.add(panel);
    public static void main(String[] args) {
    JFrameImage frame = new JFrameImage();
    frame.setSize(200,200);
    frame.setVisible(true);
    Going totally fancy pants
    ImageIcon bigImage = new ImageIcon(bgImage.getImage().getScaledInstance(getWidth(), getHeight(),Image.SCALE_REPLICATE));
    g.drawImage(bigImage.getImage(), 0, 0, this); Will scale the image to the size of the panel
    whereas
    for (int y = 0; y  < getHeight(); y = y + image.getHeight(null))
    for (int x = 0; x< getWidth(); x = x + image.getWidth(null))
    g.drawImage(image, x, y, this); Will give a tiled effect
    Try tiling with an animated gif and bring your processor to a standstill.

  • How to convert trailing minus sign into the leading minus sign

    Hi
    Can any plz tell me How to convert trailing minus sign into the leading minus sign? I mean in PI the amount filed shows like 150.00- i want to convert that into -150.00.
    Thanks
    Govinda

    Hi Shabarish,
    The code works but what if the input is something like [   10.000-] i.e. with some spaces before 10.000- and the output as per your code comes as [-     10.000]. How do we tackle such cases if there is inconsistency in data i.e. some values come as [    10.000-] i.e. spaces before the number and some values as [12.000-].
    The output of this will come as
    [-    10.000]
    [-12.000]
    How to make it as
    [-10.000]
    [-12.000]
    Regards,
    Shaibayan

Maybe you are looking for