title: Mockito testing error. Wanted but not invoked exception
body: <p>i'm new in Mockito and can't understand what a problem. And could you say me, how to do Mockito units correctly, because I really can't understand them! 
  <strong>UPDATED ERROR AND TEST CLASS</strong></p>
  
  <p>I have got next exception:</p>
  
  <blockquote>
    <p>java.lang.NullPointerException
        at ua.khpi.shapoval.autostation.service.MySqlUsersService.getUserIdByLogin(MySqlUsersService.java:49)
        at ua.khpi.shapoval.autostation.dao.UsersServiceTest.testGetUserByLogin(UsersServiceTest.java:57)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)</p>
  </blockquote>
  
  <p>Here is my DAO class:</p>
  
  <pre><code>  public class MySqlUsersDao implements UsersDao {
          /** Logger. */
          private static final Logger LOG = Logger.getLogger(MySqlUsersDao.class);
  
          /*
           * (non-Javadoc)
           * 
           * @see
           * ua.khpi.shapoval.autostation.dao.UsersDao#getUserIdByLogin(java.lang.
           * String)
           */
          @Override
          public int getUserIdByLogin(String login) {
              Connection connection = null;
              PreparedStatement stmt = null;
              ResultSet rs = null;
              try {
                  connection = DbConnector.getConnection();
                  stmt = connection.prepareStatement(Constants.UsersDao.SELECT_USER_ID_BY_LOGIN);
                  stmt.setString(1, login);
                  rs = stmt.executeQuery();
                  while (rs.next()) {
                      return rs.getInt(1);
                  }
  
              } catch (SQLException e) {
                  LOG.error(e.getMessage());
                  return 0;
              } finally {
                  DbConnector.close(connection, stmt, rs);
              }
              return 0;
          }
  
  
      }
  </code></pre>
  
  <p>Here is my Service class</p>
  
  <pre><code>   public class MySqlUsersService implements UsersService {
  
      private UsersDao usersDao;
      private TransactionManager transactionManager;
  
      public MySqlUsersService(UsersDao usersDao, TransactionManager transactionManager) {
          this.usersDao = usersDao;
          this.transactionManager = transactionManager;
      }
  
      @Override
      public int getUserIdByLogin(String login) {
          return this.transactionManager.execute(() -&gt; this.usersDao.getUserIdByLogin(login));
      }
  
  }
  </code></pre>
  
  <p>And here is my test class with Mockito</p>
  
  <pre><code>public class UsersServiceTest {
      @InjectMocks
      private MySqlUsersService mockedUsersService;
  
      @Mock
      private static TransactionManager transactionManager;
  
      @Mock
      private static UsersDao usersDao;
  
      @Mock
      private static Users user1;
  
      @Before
      public void init() {
          MockitoAnnotations.initMocks(this);
  
      }
  
      @Test public void testGetUserByLogin() {
          when(usersDao.getUserByLogin("user1")).thenReturn(user1);
          assertEquals(user1, mockedUsersService.getUserIdByLogin("user1")); 
          verify(transactionManager).execute(()-&gt;usersDao.getUserIdByLogin("user1"));
  
      }
  }
  </code></pre>