@Test
  public void testRefreshView() {
    view = new ViewObject();
    model = new ModelObject();
    view = new ViewObject();

    class Profil {
      private String nom;
      private Integer id;

      public Profil(String nom, Integer id) {
        this.nom = nom;
        this.id = id;
      }

      public String getNom() {
        return nom;
      }

      public void setNom(String nom) {
        this.nom = nom;
      }

      public Integer getId() {
        return id;
      }

      public void setId(Integer id) {
        this.id = id;
      }
    }
    Profil profil = new Profil("nom", 1);
    List<Object> profils = new ArrayList<Object>();
    profils.add(profil);
    Profil profil2 = new Profil("nom2", 2);
    profils.add(profil2);
    model.setProfils(profils);
    model.setName("NewName");
    model.setChoice("initChoice2");

    appController.bindModel(view, model);
    model.setProfil(model.getProfils().get(1));

    appController.refreshView(view);
    // The test established on the textfield's refresh
    Assert.assertEquals(view.getNameTextField().getText(), model.getName());
    // The test established on the jradiobutton's refresh
    Assert.assertTrue(view.getJradiobutton2().isSelected());
    // The test established on the jcombobox's refresh
    Assert.assertEquals(view.getProfilComboBox().getSelectedItem(), profil2);
    // The test established on the jspinner's refresh
  }
  @Test
  public void testBindModel() {

    model = new ModelObject();
    view = new ViewObject();

    class Profil {
      private String nom;
      private Integer id;

      public Profil(String nom, Integer id) {
        this.nom = nom;
        this.id = id;
      }

      public String getNom() {
        return nom;
      }

      public void setNom(String nom) {
        this.nom = nom;
      }

      public Integer getId() {
        return id;
      }

      public void setId(Integer id) {
        this.id = id;
      }

      @Override
      public String toString() {

        return this.getNom();
      }
    }
    Profil profil = new Profil("nom", 1);
    List<Object> profils = new ArrayList<Object>();
    profils.add(profil);
    model.setProfils(profils);
    JTextField jtextfield = (JTextField) view.getNameTextField();

    appController.bindModel(view, model);

    // The test on JTextField Component

    JTextField jtextfield2 = new JTextField();
    JFrame frame = new JFrame();
    frame.add(jtextfield);
    frame.add(jtextfield2);
    frame.setVisible(true);
    jtextfield.setText("Nom");
    jtextfield.requestFocus();
    jtextfield2.requestFocus();

    Assert.assertTrue(jtextfield.getListeners(FocusListener.class).length != 0);

    // this thread is defined to wait until the focus event get fired
    try {
      Thread.sleep(1000);
    } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    // The test established on JTextField binding model
    Assert.assertTrue(model.getName().equals("Nom"));
    // The test established on JCheckBox binding model
    JCheckBox jcheckbox1 = (JCheckBox) view.getJcheckbox1();
    JCheckBox jcheckbox2 = (JCheckBox) view.getJcheckbox2();
    jcheckbox1.doClick();
    jcheckbox2.doClick();
    List<String> checked = new ArrayList<String>();
    checked.add(jcheckbox1.getText());
    checked.add(jcheckbox2.getText());
    Assert.assertEquals(model.getChoices(), checked);
    // The test established on JRadioButton
    JRadioButton jradiobutton1 = (JRadioButton) view.getJradiobutton1();
    JRadioButton jradiobutton2 = (JRadioButton) view.getJradiobutton2();
    jradiobutton1.doClick();
    Assert.assertEquals(model.getChoice(), model.getInitChoice1());
    jradiobutton2.doClick();
    Assert.assertEquals(model.getChoice(), model.getInitChoice2());
    // The test established on JLabel binding model
    JLabel jlabel = (JLabel) view.getJlabel();
    Assert.assertEquals(jlabel.getText(), model.getLabelInitValue());
    // The test established on JList binding model
    JList jlist = (JList) view.getJlist();
    Assert.assertTrue(jlist.getVisibleRowCount() != 0);
    // The test established  on JTable binding model
    JTable jtable = (JTable) view.getTable();
    Assert.assertTrue(view.getTable().getRowCount() == 1);
    // The test established on JSpinner binding model
    JSpinner jspinner = view.getJspinner();
    Assert.assertEquals(jspinner.getValue(), model.getProfils().get(0));
    // The test established  on JComboBox binding model
    JComboBox jcombobox = (JComboBox) view.getProfilComboBox();
    Assert.assertTrue(view.getProfilComboBox().getItemCount() == 1);
  }